[vmkit-commits] [vmkit] r180452 - Updated testing framework.

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 10:12:46 PDT 2013


Author: peter.senna
Date: Thu Apr 25 12:11:11 2013
New Revision: 180452

URL: http://llvm.org/viewvc/llvm-project?rev=180452&view=rev
Log:
Updated testing framework.
(cherry picked from commit 4e705463600eb3ab3a986c54976f408317f86e37)

Added:
    vmkit/trunk/incinerator/tests/benchmarks/bytes.sh
    vmkit/trunk/incinerator/tests/benchmarks/float.sh
    vmkit/trunk/incinerator/tests/benchmarks/mon-process.sh
    vmkit/trunk/incinerator/tests/benchmarks/statistics.sh
    vmkit/trunk/incinerator/tests/benchmarks/std-deviation.sh
    vmkit/trunk/incinerator/tests/benchmarks/t
Modified:
    vmkit/trunk/incinerator/README.TXT
    vmkit/trunk/incinerator/tests/benchmarks/run-dacapo.sh
    vmkit/trunk/tests/dacapo/Makefile.inc

Modified: vmkit/trunk/incinerator/README.TXT
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/README.TXT?rev=180452&r1=180451&r2=180452&view=diff
==============================================================================
--- vmkit/trunk/incinerator/README.TXT (original)
+++ vmkit/trunk/incinerator/README.TXT Thu Apr 25 12:11:11 2013
@@ -98,6 +98,8 @@ svn co http://llvm.org/svn/llvm-project/
 ./configure --enable-incinerator --with-mmtk-plan=org.mmtk.plan.immix.Immix --with-llvmsrc=/home/koutheir/PhD/VMKit/llvm --with-llvmobj=/home/koutheir/PhD/VMKit/llvm --with-gnu-classpath-libs=/home/koutheir/PhD/VMKit/classpath/lib --with-gnu-classpath-glibj=/home/koutheir/PhD/VMKit/classpath/lib/glibj.zip
 make -j12 ENABLE_OPTIMIZED=0 REQUIRES_FRAME_POINTER=1 KEEP_SYMBOLS=1 DEBUG_RUNTIME=1 DEBUG_SYMBOLS=1
 
+./configure --enable-incinerator --with-mmtk-plan=org.mmtk.plan.marksweep.MS --with-llvmsrc=/home/koutheir/PhD/VMKit/llvm --with-llvmobj=/home/koutheir/PhD/VMKit/llvm/build.x86 --with-gnu-classpath-libs=/home/koutheir/PhD/VMKit/classpath-0.99/build.x86/lib --with-gnu-classpath-glibj=/home/koutheir/PhD/VMKit/classpath-0.99/build.x86/lib/glibj.zip
+
 =============
 Knopflerfish:
 =============

Added: vmkit/trunk/incinerator/tests/benchmarks/bytes.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/tests/benchmarks/bytes.sh?rev=180452&view=auto
==============================================================================
--- vmkit/trunk/incinerator/tests/benchmarks/bytes.sh (added)
+++ vmkit/trunk/incinerator/tests/benchmarks/bytes.sh Thu Apr 25 12:11:11 2013
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+. ./float.sh
+
+# Converts size from some size unit to bytes unit.
+function get_size_in_bytes()
+{
+	local size=$1
+	local number=$(echo "$size" | cut -d ' ' -f 1)
+	local unit=$(echo "$size" | cut -d ' ' -f 2)
+	local factor=1
+
+	case $unit in
+	B ) factor=1 ;;
+	kB ) factor=1024 ;;
+	mB ) factor=1048576 ;;
+	gB ) factor=1073741824 ;;
+	tB ) factor=1099511627776 ;;
+	esac
+	
+	float_eval "$number * $factor"
+}

Added: vmkit/trunk/incinerator/tests/benchmarks/float.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/tests/benchmarks/float.sh?rev=180452&view=auto
==============================================================================
--- vmkit/trunk/incinerator/tests/benchmarks/float.sh (added)
+++ vmkit/trunk/incinerator/tests/benchmarks/float.sh Thu Apr 25 12:11:11 2013
@@ -0,0 +1,36 @@
+#/bin/bash
+
+float_scale=2
+
+# Evaluate then output an equation into a float number with $float_scale precision.
+function float_eval()
+{
+	local stat=0
+	local result=0.0
+	
+	if [[ $# -gt 0 ]]; then
+		result=$(echo "scale=$float_scale; $*"|bc -q 2>/dev/null)
+		stat=$?
+		
+		if [[ "$stat" -eq 0 && -z "$result" ]]; then stat=1; fi
+	fi
+	
+	echo -n $result
+	return $stat
+}
+
+# Evaluate an equation into a condition.
+function float_cond()
+{
+	local cond=0
+	
+	if [[ $# -gt 0 ]]; then
+		cond=$(echo "$*"|bc -q 2>/dev/null)
+		
+		if [[ -z "$cond" ]]; then cond=0; fi
+		if [[ "$cond" != 0 && "$cond" != 1 ]]; then cond=0; fi
+	fi
+	
+	local stat=$(($cond == 0))
+	return $stat
+}

Added: vmkit/trunk/incinerator/tests/benchmarks/mon-process.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/tests/benchmarks/mon-process.sh?rev=180452&view=auto
==============================================================================
--- vmkit/trunk/incinerator/tests/benchmarks/mon-process.sh (added)
+++ vmkit/trunk/incinerator/tests/benchmarks/mon-process.sh Thu Apr 25 12:11:11 2013
@@ -0,0 +1,32 @@
+#/bin/bash
+
+. ./statistics.sh
+
+input=$1
+duration=$2
+
+if [ 0 -ne "$input" ] 2>/dev/null ; then
+	# Input is a PID
+	input_type='-p'
+else
+	# Input is a command name
+	input_type='-C'
+fi
+
+# Collect statistics data
+rawdata="$(sudo nice -n -10 pidstat "$input_type" "$input" -hru 1 "$duration" | grep '^[# 0-9]' | sed 's/^#//g' | sed 's/^ \+//g' | tr -s ' ' ',')"
+head="$(echo "$rawdata" | head -1)"
+data="$(echo "$rawdata" | grep -v '^[^0-9]')"
+
+# Rebase time
+base_time=$(echo "$data" | head -1 | cut -d ',' -f 1)
+timefmt=%M:%S
+
+echo "$head"
+for i in $data ; do
+	old_time=$(echo "$i" | cut -d ',' -f 1)
+	new_time=$(rebase_time_then_format $base_time $timefmt $old_time)
+
+	remaining_data=$(echo "$i" | cut -d ',' -f 2-)
+	echo "$new_time,$remaining_data"
+done

Modified: vmkit/trunk/incinerator/tests/benchmarks/run-dacapo.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/tests/benchmarks/run-dacapo.sh?rev=180452&r1=180451&r2=180452&view=diff
==============================================================================
--- vmkit/trunk/incinerator/tests/benchmarks/run-dacapo.sh (original)
+++ vmkit/trunk/incinerator/tests/benchmarks/run-dacapo.sh Thu Apr 25 12:11:11 2013
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-dacapo_dir=/home/koutheir/PhD/VMKit/vmkit2/tests/dacapo/2006-10-MR2
+dacapo_dir=/home/koutheir/PhD/VMKit/vmkit/tests/dacapo/2006-10-MR2
 
 cd $dacapo_dir
 make ENABLE_IJVM=0

Added: vmkit/trunk/incinerator/tests/benchmarks/statistics.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/tests/benchmarks/statistics.sh?rev=180452&view=auto
==============================================================================
--- vmkit/trunk/incinerator/tests/benchmarks/statistics.sh (added)
+++ vmkit/trunk/incinerator/tests/benchmarks/statistics.sh Thu Apr 25 12:11:11 2013
@@ -0,0 +1,68 @@
+#/bin/bash
+
+. ./float.sh
+
+# calc_count
+# stdin holds one number per line
+function calc_count()
+{
+	local count=0
+
+	while read i ; do
+		count=$(($count + 1))
+	done
+
+	echo -n $count
+}
+
+# calc_average
+# stdin holds one number per line
+function calc_average()
+{
+	local average=0
+	local count=0
+
+	while read i ; do
+		count=$(($count + 1))
+		average=$(float_eval $average + $i)
+	done
+
+	average=$(float_eval $average / $count)
+	echo -n $average
+}
+
+# calc_variance $average
+# stdin holds one number per line
+function calc_variance()
+{
+	local average=$1
+	local count=0
+	local variance=0
+
+	while read i ; do
+		count=$(($count + 1))
+		variance=$(float_eval $variance + '(' $i - $average ')^2' )
+	done
+
+	variance=$(float_eval $variance / $count)
+	echo -n $variance
+}
+
+# calc_standard_deviation $average
+# stdin holds one number per line
+function calc_standard_deviation()
+{
+	local average=$1
+	float_eval 'sqrt(' $(calc_variance $average) ')'
+}
+
+# rebase_time_then_format $base_time_in_seconds $timefmt $current_time_in_seconds
+function rebase_time_then_format()
+{
+	local base_time=$1
+	local timefmt=$2
+	local current_time=$3
+
+	local diff_sec=$(($current_time - $base_time))
+	date "+$timefmt" -d "2000-01-01 00:00:00 CET + $diff_sec seconds"
+}

Added: vmkit/trunk/incinerator/tests/benchmarks/std-deviation.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/tests/benchmarks/std-deviation.sh?rev=180452&view=auto
==============================================================================
--- vmkit/trunk/incinerator/tests/benchmarks/std-deviation.sh (added)
+++ vmkit/trunk/incinerator/tests/benchmarks/std-deviation.sh Thu Apr 25 12:11:11 2013
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Compute average, variance, and standard deviation given a list of numbers.
+
+. ./statistics.sh
+
+data="$(tr -s ' ' '\n' | tr -s '\n')"
+
+average=$(echo "$data" | calc_average)
+count=$(echo "$data" | calc_count $average)
+variance=$(echo "$data" | calc_variance $average)
+std_dev=$(echo "$data" | calc_standard_deviation $average)
+
+echo "count=$count"
+echo "average=$average"
+echo "variance=$variance"
+echo "standard deviation=$std_dev"

Added: vmkit/trunk/incinerator/tests/benchmarks/t
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/incinerator/tests/benchmarks/t?rev=180452&view=auto
==============================================================================
--- vmkit/trunk/incinerator/tests/benchmarks/t (added)
+++ vmkit/trunk/incinerator/tests/benchmarks/t Thu Apr 25 12:11:11 2013
@@ -0,0 +1,7 @@
+1.2 2 3
+4 5
+6
+7 8
+9
+
+

Modified: vmkit/trunk/tests/dacapo/Makefile.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tests/dacapo/Makefile.inc?rev=180452&r1=180451&r2=180452&view=diff
==============================================================================
--- vmkit/trunk/tests/dacapo/Makefile.inc (original)
+++ vmkit/trunk/tests/dacapo/Makefile.inc Thu Apr 25 12:11:11 2013
@@ -4,13 +4,13 @@ else
 	BUILD_MODE	:= Release+Asserts
 endif
 
-TEMP_LEVEL			:= ../..
-RUN_BENCH			:= $(PWD)/$(LEVEL)/run-bench.sh
-DACAPO				:= $(PWD)/$(LEVEL)/jars/dacapo-$(DACAPO_VERSION).jar
-TMP_DIR				:= $(LEVEL)/tmp
-LOG_DIR				:= $(LEVEL)/logs
-J3_PATH				:= $(PWD)/../$(TEMP_LEVEL)/$(LEVEL)/vmkit2/$(BUILD_MODE)/bin/j3
-IJVM_PATH			:= $(PWD)/../$(TEMP_LEVEL)/$(LEVEL)/ijvm/$(BUILD_MODE)/bin/j3
+TEMP_LEVEL	:= ../..
+RUN_BENCH	:= $(PWD)/$(LEVEL)/run-bench.sh
+DACAPO		:= $(PWD)/$(LEVEL)/jars/dacapo-$(DACAPO_VERSION).jar
+TMP_DIR		:= $(LEVEL)/tmp
+LOG_DIR		:= $(LEVEL)/logs
+J3_PATH		:= $(PWD)/../$(TEMP_LEVEL)/$(LEVEL)/vmkit/$(BUILD_MODE)/bin/j3
+IJVM_PATH	:= $(PWD)/../$(TEMP_LEVEL)/$(LEVEL)/ijvm/$(BUILD_MODE)/bin/j3
 
 ifndef ENABLE_J3
 	ENABLE_J3 := 1
@@ -20,17 +20,11 @@ ifndef ENABLE_IJVM
 	ENABLE_IJVM := 1
 endif
 
-J3_DEFINED := [ "$(ENABLE_J3)" -ne 0 ]
-IJVM_DEFINED := [ "$(ENABLE_IJVM)" -ne 0 ]
-
-all: $(VM) $(TMP_DIR) $(LOG_DIR) $(DECAPO_BENCHMARKS)
-
-$(TMP_DIR) $(LOG_DIR):
-	@mkdir -p $@ 2>/dev/null
+all: $(VM) $(DECAPO_BENCHMARKS)
 
 $(DECAPO_BENCHMARKS): $(DACAPO)
-	@$(RUN_BENCH) "$(ENABLE_J3)" "j3" "$(DACAPO_VERSION)" "$(J3_PATH)" "$(DACAPO)" "$(DACAPO_ARGS)" "$@"
-	@$(RUN_BENCH) "$(ENABLE_IJVM)" "ijvm" "$(DACAPO_VERSION)" "$(IJVM_PATH)" "$(DACAPO)" "$(DACAPO_ARGS)" "$@"
+	@-$(RUN_BENCH) "$(ENABLE_J3)" "j3" "$(DACAPO_VERSION)" "$(J3_PATH)" "$(DACAPO)" "$(DACAPO_ARGS)" "$@"
+	@-$(RUN_BENCH) "$(ENABLE_IJVM)" "ijvm" "$(DACAPO_VERSION)" "$(IJVM_PATH)" "$(DACAPO)" "$(DACAPO_ARGS)" "$@"
 
 clean:
 	@-rm -rf "$(TMP_DIR)" "$(LOG_DIR)" 2>/dev/null





More information about the vmkit-commits mailing list