Megatest

Diff
Login

Differences From Artifact [53b5450f55]:

To Artifact [f5e767ace5]:


11
12
13
14
15
16
17
18
19
20
21
22

23
24









25
26
27
28
29
30
31
11
12
13
14
15
16
17

18
19
20
21
22


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38







-




+
-
-
+
+
+
+
+
+
+
+
+







;;     but WITHOUT ANY WARRANTY; without even the implied warranty of
;;     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;     GNU General Public License for more details.
;; 
;;     You should have received a copy of the GNU General Public License
;;     along with Megatest.  If not, see <http://www.gnu.org/licenses/>.
;;

(module whodunit

 *


(import scheme chicken data-structures extras)
(use posix srfi-69)
(import 
  (chicken process-context)
  (chicken process)
  (chicken string)
  (chicken sort)
  (chicken io)
  srfi-69
  scheme
)

(define *numsamples* (or (and (> (length (argv)) 1)
                              (string->number (cadr (argv))))
                         3))

(define (topdata)
  (with-input-from-pipe
53
54
55
56
57
58
59
60

61
62
63
64
65
66
67
60
61
62
63
64
65
66

67
68
69
70
71
72
73
74







-
+







     (let ((pid (car indat))
           (usr (cadr indat))
           (cpu (list-ref indat 8)))
       (hash-table-set! ht usr (+ cpu (hash-table-ref/default ht usr 0)))))
   data))

)
(import whodunit)
(import whodunit srfi-69 (chicken sort))

(print "Getting " *numsamples* " samples of cpu usage data.")
(define data (cleanup-data (topdata)))
(define pidhash  (make-hash-table))
(define userhash (make-hash-table))
(sum-up data userhash)