You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							131 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
	
	
							131 lines
						
					
					
						
							2.7 KiB
						
					
					
				| #!/bin/sh | |
| # | |
| # --- T2-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| #  | |
| # T2 SDE: package/.../cpuburn/cpuburn.sh | |
| # Copyright (C) 2004 - 2006 The T2 SDE Project | |
| # Copyright (C) 1998 - 2003 Clifford Wolf | |
| #  | |
| # More information can be found in the files COPYING and README. | |
| #  | |
| # This program is free software; you can redistribute it and/or modify | |
| # it under the terms of the GNU General Public License as published by | |
| # the Free Software Foundation; version 2 of the License. A copy of the | |
| # GNU General Public License can be found in the file COPYING. | |
| # --- T2-COPYRIGHT-NOTE-END --- | |
|  | |
| errors=`mktemp -t cpuburn.XXXX` | |
| start=`date "+%s"` ; command="" ; jobs=1 | |
|  | |
| help() { | |
| 	cat << 'EOT' | |
|  | |
| Usage: $0 [ -j Jobs ] { -k6 | -k7 | -p5 | -p6 | -bx | -mmx } [ -mem Mem ] | |
|  | |
| The -mem option is only available for the bx and mmx tests. Possible values | |
| for Mem are: 2kb, 4kb, 8kb, 16kb, 32kb, 64kb, 128kb, 256kb, 512kb, 1MB, 2MB, | |
| 4MB, 8MB, 16MB, 32MB and 64MB. | |
|  | |
| EOT | |
| 	rm $errors | |
| 	exit 1 | |
| } | |
|  | |
| while [ "$#" != 0 ] | |
| do | |
| 	case "$1" in | |
| 	    -j) | |
| 		jobs=$2 ; shift ;; | |
|  | |
| 	    -bx) | |
| 		command="burnBX" ;; | |
| 	    -k6) | |
| 		command="burnK6" ;; | |
| 	    -k7) | |
| 		command="burnK7" ;; | |
| 	    -mmx) | |
| 		command="burnMMX" ;; | |
| 	    -p5) | |
| 		command="burnP5" ;; | |
| 	    -p6) | |
| 		command="burnP6" ;; | |
|  | |
| 	    -mem) | |
| 		[ "$command" != burnBX -a "$command" != burnMMX ] && help | |
|  | |
| 		case "$2" in | |
| 		    2kb) | |
| 			command="$command A" ;; | |
| 		    4kb) | |
| 			command="$command B" ;; | |
| 		    8kb) | |
| 			command="$command C" ;; | |
| 		    16kb) | |
| 			command="$command D" ;; | |
| 		    32kb) | |
| 			command="$command E" ;; | |
| 		    64kb) | |
| 			command="$command F" ;; | |
| 		    128kb) | |
| 			command="$command G" ;; | |
| 		    256kb) | |
| 			command="$command H" ;; | |
| 		    512kb) | |
| 			command="$command I" ;; | |
| 		    1MB) | |
| 			command="$command J" ;; | |
| 		    2MB) | |
| 			command="$command K" ;; | |
| 		    4MB) | |
| 			command="$command L" ;; | |
| 		    8MB) | |
| 			command="$command M" ;; | |
| 		    16MB) | |
| 			command="$command N" ;; | |
| 		    32MB) | |
| 			command="$command O" ;; | |
| 		    64MB) | |
| 			command="$command P" ;; | |
| 		    *) | |
| 			help ;; | |
| 		esac | |
| 		shift | |
| 		;; | |
|  | |
| 	    *) | |
| 		help ;; | |
| 	esac | |
| 	shift | |
| done | |
|  | |
| [ "$command" = "" ] && help | |
| desc="${jobs}x ${command#burn}" | |
|  | |
| while [ $jobs -gt 0 ] ; do | |
| 	( | |
| 		PATH=".:$PATH" | |
| 		while true ; do | |
| 			eval "$command" | |
| 			date "+%T - $?" >> $errors | |
| 		done | |
| 	) & | |
| 	jobs=$(( $jobs - 1 )) | |
| done &> /dev/null | |
|  | |
| trap "fuser -9 -k $errors > /dev/null ; rm $errors ; exit 0" INT TERM | |
| echo "Using temp file $errors ..." | |
|  | |
| while true | |
| do | |
| 	tm=$(( `date +%s` - $start )) | |
| 	tm=$( printf '%02d:%02d:%02d:%02d'	\ | |
| 		$(( ($tm / (60*60*24)) ))	\ | |
| 		$(( ($tm / (60*60)) % 24 ))	\ | |
| 		$(( ($tm / 60) % 60 ))		\ | |
| 		$((  $tm % 60 )) ) | |
| 	echo `date "+%T ($tm)"` " [$desc] " Load average: \ | |
| 	     `uptime | sed "s,.*average: ,,"`, "" `wc -l < $errors` Errors. | |
| 	sleep 5 | |
| done | |
| 
 | |
| 
 |