mmm_donut: Convert to python 3
Simple conversion. Just did super basic testing.
BUG=chromium:1036161
TEST=Run mmm_donut
Change-Id: I57998792e14012a5d66710dc285e89a4862a0a7d
diff --git a/mmm_donut.py b/mmm_donut.py
index 9b6494a..d8de98f 100755
--- a/mmm_donut.py
+++ b/mmm_donut.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -52,15 +52,12 @@
mmm_donut --free_swap=500 --munch_mbs=20 --taste=70 --chew=90
"""
-
-from __future__ import print_function
-
import argparse
import ctypes
import multiprocessing
import numpy
import os
-import Queue
+import queue
import subprocess
import sys
import time
@@ -80,7 +77,7 @@
_MB = _KB * _KB
# For the purpose of this program, a 'word' is 32-bits.
-_WORDS_PER_MB = _MB / 4
+_WORDS_PER_MB = _MB // 4
_PAGESIZE = os.sysconf('SC_PAGESIZE')
@@ -125,7 +122,7 @@
proto_data = numpy.memmap(_DEFAULT_FILE_TO_MAP,
dtype='uint32', mode='r')
self._proto_data = proto_data
- self._num_proto_mbs = len(self._proto_data) / _WORDS_PER_MB
+ self._num_proto_mbs = len(self._proto_data) // _WORDS_PER_MB
self._at_proto_mb = 0
# Every time we munch through a chunk we'll add this to each integer to
@@ -173,7 +170,7 @@
the proto data; we'll just put a unique value in the first
word of the page.
"""
- for _ in xrange(mbs_to_munch):
+ for _ in range(mbs_to_munch):
# Allocate some memory using libc; give back a numpy object
mb = self._alloc_array(_WORDS_PER_MB, ctypes.c_uint32)
@@ -207,7 +204,7 @@
Args:
mbs_to_spit: Number of MBs to spit.
"""
- for _ in xrange(mbs_to_spit):
+ for _ in range(mbs_to_spit):
if not self._mbs:
raise RuntimeError('No more memory to spit out')
self._free_array(self._mbs.pop(0))
@@ -222,7 +219,7 @@
raise RuntimeError('No memory')
mb_num = self._last_accessed_mb
- for mb_num in xrange(mb_num + 1, mb_num + 1 + mbs_to_taste):
+ for mb_num in range(mb_num + 1, mb_num + 1 + mbs_to_taste):
mb_num %= len(self._mbs)
mb = self._mbs[mb_num]
self.num_mbs_tasted += 1
@@ -240,7 +237,7 @@
raise RuntimeError('No memory')
mb_num = self._last_accessed_mb
- for mb_num in xrange(mb_num + 1, mb_num + 1 + mbs_to_chew):
+ for mb_num in range(mb_num + 1, mb_num + 1 + mbs_to_chew):
mb_num %= len(self._mbs)
mb = self._mbs[mb_num]
self.num_mbs_chewed += 1
@@ -363,7 +360,7 @@
try:
task_num = done_queue.get(timeout=.5)
done_tasks.add(task_num)
- except Queue.Empty:
+ except queue.Empty:
for task_num, task in enumerate(tasks):
if not task.is_alive():
raise WorkerDeadError(task_num)
@@ -373,7 +370,7 @@
return
# Add everyone back to the done_queue.
- for task_num in xrange(num_tasks):
+ for task_num in range(num_tasks):
done_queue.put(task_num)
@@ -398,7 +395,7 @@
time.sleep(1)
# We'll throw an extra status update; this will refill the done_queue
- for task_num in xrange(num_tasks):
+ for task_num in range(num_tasks):
assert cmd_queues[task_num].empty()
cmd_queues[task_num].put('status')
_wait_everyone_done(tasks, done_queue)
@@ -472,19 +469,19 @@
num_tasks = options.num_tasks
done_queue = multiprocessing.Queue()
- cmd_queues = [multiprocessing.Queue() for task_num in xrange(num_tasks)]
+ cmd_queues = [multiprocessing.Queue() for task_num in range(num_tasks)]
tasks = [
multiprocessing.Process(
target=_thread_main,
args=(task_num, options, cmd_queues[task_num], done_queue)
)
- for task_num in xrange(num_tasks)
+ for task_num in range(num_tasks)
]
for task in tasks:
task.start()
print('Starting test.')
- for task_num in xrange(num_tasks):
+ for task_num in range(num_tasks):
cmd_queues[task_num].put('status')
_wait_everyone_done(tasks, done_queue)