Add support for BYTE UNIX benchmarks.
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 353bb61..d746513 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -130,6 +130,16 @@
 	<action android:name="android.intent.action.MAIN" />
 	</intent-filter>
 	</activity>
+
+	<activity
+	android:name="org.zeroxlab.byteunix.NativeTesterUbench"
+	android:screenOrientation="portrait"
+	>
+	<intent-filter>
+	<action android:name="android.intent.action.MAIN" />
+	</intent-filter>
+	</activity>
+
     </application>
     <uses-sdk android:minSdkVersion="7" />
 </manifest>
diff --git a/native/Android.mk b/native/Android.mk
index bf27a27..24eddc2 100644
--- a/native/Android.mk
+++ b/native/Android.mk
@@ -19,3 +19,5 @@
 include $(CLEAR_VARS)
 
 include $(TOP_LOCAL_PATH)/libMicro-0.4.0/Android.mk
+include $(TOP_LOCAL_PATH)/unixbench-5.1.2/Android.mk
+
diff --git a/native/unixbench-5.1.2/src/execl.c b/native/unixbench-5.1.2/src/execl.c
index 9b60b6a..3b736a1 100644
--- a/native/unixbench-5.1.2/src/execl.c
+++ b/native/unixbench-5.1.2/src/execl.c
@@ -35,10 +35,11 @@
 
 #undef main
 
+#include "socket.c"
+
 /* added by BYTE */
 char *getenv();
 
-
 int main(argc, argv)	/* the real program */
 int	argc;
 char	*argv[];
@@ -90,6 +91,13 @@
 	time(&this_time);
 	if (this_time - start_time >= duration) { /* time has run out */
 		fprintf(stderr, "COUNT|%lu|1|lps\n", iter);
+        fprintf(stderr, "TIME|%lu\n", this_time - start_time);
+        init_socket();
+        char buff[BUFFER_SIZE];
+        sprintf(buff, "COUNT|%lu|1|lps|%lu\n", iter, this_time - start_time);
+        send_socket(buff);
+        close_socket();
+
 		exit(0);
 		}
 	execl(fullpath, fullpath, "0", dur_str, count_str, start_str, (void *) 0);
diff --git a/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java b/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
index 108e490..ce5f307 100644
--- a/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
+++ b/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
@@ -101,7 +101,7 @@
             if(name == null || results == null)
                 continue;
             ArrayList<String> _mTags = new ArrayList<String>();
-            _mTags.add((String)("exe:" + command.substring(command.indexOf("_")+1, command.indexOf(" "))));
+            _mTags.add((String)("exe:" + command.substring(0, command.indexOf(" "))));
 //            String [] _tmp = command.split(" +-");
 //            for(int i=1; i<_tmp.length; i++){
 //                if(_tmp[i].matches("[NECLSW].*"))
diff --git a/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java b/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
index 094c25a..a49e6b6 100644
--- a/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
+++ b/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
@@ -32,346 +32,345 @@
     public static final String REPORT = "REPORT";
     public static final String RESULT = "RESULT";
     private static final String Opts = "-E -C 70 -L -S -W";
-    private static final String Path = "/system/bin/bench_";
     public static final List<String> COMMANDS  = Arrays.asList(
 
-        Path + "getpid " + Opts + " -N getpid -I 5",
+        "getpid " + Opts + " -N getpid -I 5",
 
-        Path + "getenv " + Opts + " -N getenv   -s 100 -I 100",
-        Path + "getenv " + Opts + " -N getenvT2   -s 100 -I 100 -T 2",
+        "getenv " + Opts + " -N getenv   -s 100 -I 100",
+        "getenv " + Opts + " -N getenvT2   -s 100 -I 100 -T 2",
 
-        Path + "gettimeofday " + Opts + " -N gettimeofday",
+        "gettimeofday " + Opts + " -N gettimeofday",
 
-        Path + "log " + Opts + " -N log  -I 20",
+        "log " + Opts + " -N log  -I 20",
 
-        Path + "exp " + Opts + " -N exp  -I 20",
+        "exp " + Opts + " -N exp  -I 20",
 
-        Path + "lrand48 " + Opts + " -N lrand48",
+        "lrand48 " + Opts + " -N lrand48",
 
-        Path + "memset " + Opts + " -N memset_10	-s 10	-I 10 ",
-        Path + "memset " + Opts + " -N memset_256	-s 256	-I 20",
-        Path + "memset " + Opts + " -N memset_256_u	-s 256	 -a 1 -I 20 ",
-        Path + "memset " + Opts + " -N memset_1k	-s 1k	 -I 100",
-        Path + "memset " + Opts + " -N memset_4k    -s 4k    -I 250",
-        Path + "memset " + Opts + " -N memset_4k_uc -s 4k    -u -I 400",
-        Path + "memset " + Opts + " -N memset_10k	-s 10k	-I 600	 ",
-        Path + "memset " + Opts + " -N memset_1m	-s 1m	-I 200000",
-//        Path + "memset " + Opts + " -N memset_10m	-s 10m -I 2000000 ",
-//        Path + "memset " + Opts + " -N memsetP2_10m	-s 10m -P 2 -I 2000000 ",
+        "memset " + Opts + " -N memset_10	-s 10	-I 10 ",
+        "memset " + Opts + " -N memset_256	-s 256	-I 20",
+        "memset " + Opts + " -N memset_256_u	-s 256	 -a 1 -I 20 ",
+        "memset " + Opts + " -N memset_1k	-s 1k	 -I 100",
+        "memset " + Opts + " -N memset_4k    -s 4k    -I 250",
+        "memset " + Opts + " -N memset_4k_uc -s 4k    -u -I 400",
+        "memset " + Opts + " -N memset_10k	-s 10k	-I 600	 ",
+        "memset " + Opts + " -N memset_1m	-s 1m	-I 200000",
+//        "memset " + Opts + " -N memset_10m	-s 10m -I 2000000 ",
+//        "memset " + Opts + " -N memsetP2_10m	-s 10m -P 2 -I 2000000 ",
 
-//        Path + "memrand " + Opts + " -N memrand	-s 128m -B 10000",
+//        "memrand " + Opts + " -N memrand	-s 128m -B 10000",
 
-        Path + "isatty " + Opts + " -N isatty_yes   ",
-//        Path + "isatty " + Opts + " -N isatty_no  -f $IFILE",
+        "isatty " + Opts + " -N isatty_yes   ",
+//        "isatty " + Opts + " -N isatty_no  -f $IFILE",
 
-        Path + "malloc " + Opts + " -N malloc_10    -s 10    -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_100   -s 100   -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_1k    -s 1k    -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_10k   -s 10k   -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_100k  -s 100k  -g 10 -I 2000",
+        "malloc " + Opts + " -N malloc_10    -s 10    -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_100   -s 100   -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_1k    -s 1k    -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_10k   -s 10k   -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_100k  -s 100k  -g 10 -I 2000",
 
-        Path + "malloc " + Opts + " -N mallocT2_10    -s 10   -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_100   -s 100  -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_1k    -s 1k   -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_10k   -s 10k  -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_100k  -s 100k -g 10 -T 2 -I 10000",
+        "malloc " + Opts + " -N mallocT2_10    -s 10   -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_100   -s 100  -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_1k    -s 1k   -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_10k   -s 10k  -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_100k  -s 100k -g 10 -T 2 -I 10000",
 
-        Path + "close " + Opts + " -N close_bad		-B 32		-b",
-//        Path + "close " + Opts + " -N close_tmp		-B 32		-f $TFILE",
-//        Path + "close " + Opts + " -N close_usr		-B 32		-f $VFILE",
-        Path + "close " + Opts + " -N close_zero		-B 32		-f /dev/zero",
+        "close " + Opts + " -N close_bad		-B 32		-b",
+//        "close " + Opts + " -N close_tmp		-B 32		-f $TFILE",
+//        "close " + Opts + " -N close_usr		-B 32		-f $VFILE",
+        "close " + Opts + " -N close_zero		-B 32		-f /dev/zero",
 
-        Path + "memcpy " + Opts + " -N memcpy_10	-s 10	-I 10 ",
-        Path + "memcpy " + Opts + " -N memcpy_1k	-s 1k	-I 50",
-        Path + "memcpy " + Opts + " -N memcpy_10k	-s 10k	-I 800",
-//        Path + "memcpy " + Opts + " -N memcpy_1m	-s 1m   -I 500000",
-//        Path + "memcpy " + Opts + " -N memcpy_10m	-s 10m  -I 5000000",
+        "memcpy " + Opts + " -N memcpy_10	-s 10	-I 10 ",
+        "memcpy " + Opts + " -N memcpy_1k	-s 1k	-I 50",
+        "memcpy " + Opts + " -N memcpy_10k	-s 10k	-I 800",
+//        "memcpy " + Opts + " -N memcpy_1m	-s 1m   -I 500000",
+//        "memcpy " + Opts + " -N memcpy_10m	-s 10m  -I 5000000",
 
-        Path + "strcpy " + Opts + " -N strcpy_10	-s 10   -I 5 ",
-        Path + "strcpy " + Opts + " -N strcpy_1k	-s 1k   -I 100",
+        "strcpy " + Opts + " -N strcpy_10	-s 10   -I 5 ",
+        "strcpy " + Opts + " -N strcpy_1k	-s 1k   -I 100",
 
-        Path + "strlen " + Opts + " -N strlen_10	-s 10   -I 5",
-        Path + "strlen " + Opts + " -N strlen_1k	-s 1k   -I 100",
+        "strlen " + Opts + " -N strlen_10	-s 10   -I 5",
+        "strlen " + Opts + " -N strlen_1k	-s 1k   -I 100",
 
-        Path + "strchr " + Opts + " -N strchr_10	-s 10   -I 5",
-        Path + "strchr " + Opts + " -N strchr_1k	-s 1k   -I 200",
-        Path + "strcmp " + Opts + " -N strcmp_10	-s 10   -I 10",
-        Path + "strcmp " + Opts + " -N strcmp_1k	-s 1k   -I 200",
+        "strchr " + Opts + " -N strchr_10	-s 10   -I 5",
+        "strchr " + Opts + " -N strchr_1k	-s 1k   -I 200",
+        "strcmp " + Opts + " -N strcmp_10	-s 10   -I 10",
+        "strcmp " + Opts + " -N strcmp_1k	-s 1k   -I 200",
 
-        Path + "strcasecmp " + Opts + " -N scasecmp_10	-s 10 -I 50",
-        Path + "strcasecmp " + Opts + " -N scasecmp_1k	-s 1k -I 20000",
+        "strcasecmp " + Opts + " -N scasecmp_10	-s 10 -I 50",
+        "strcasecmp " + Opts + " -N scasecmp_1k	-s 1k -I 20000",
 
-        Path + "strtol " + Opts + " -N strtol      -I 20      ",
+        "strtol " + Opts + " -N strtol      -I 20      ",
 
-        Path + "mutex " + Opts + " -N mutex_st	-I 10",
-        Path + "mutex " + Opts + " -N mutex_mt	-t -I 10	",
-        Path + "mutex " + Opts + " -N mutex_T2     -T 2  -I 100",
+        "mutex " + Opts + " -N mutex_st	-I 10",
+        "mutex " + Opts + " -N mutex_mt	-t -I 10	",
+        "mutex " + Opts + " -N mutex_T2     -T 2  -I 100",
 
-//        Path + "longjmp " + Opts + " -N longjmp	-I 10",
-//        Path + "siglongjmp " + Opts + " -N siglongjmp	-I 20",
+//        "longjmp " + Opts + " -N longjmp	-I 10",
+//        "siglongjmp " + Opts + " -N siglongjmp	-I 20",
 
-        Path + "getrusage " + Opts + " -N getrusage	-I 200",
+        "getrusage " + Opts + " -N getrusage	-I 200",
 
-        Path + "times " + Opts + " -N times	-I 200",
-        Path + "time " + Opts + " -N time		-I 50",
-        Path + "localtime_r " + Opts + " -N localtime_r	-I 200  ",
-        Path + "strftime " + Opts + " -N strftime -I 10000  ",
+        "times " + Opts + " -N times	-I 200",
+        "time " + Opts + " -N time		-I 50",
+        "localtime_r " + Opts + " -N localtime_r	-I 200  ",
+        "strftime " + Opts + " -N strftime -I 10000  ",
 
-        Path + "mktime " + Opts + " -N mktime       -I 500   ",
-        Path + "mktime " + Opts + " -N mktimeT2 -T 2 -I 1000 ",
+        "mktime " + Opts + " -N mktime       -I 500   ",
+        "mktime " + Opts + " -N mktimeT2 -T 2 -I 1000 ",
 
-//        Path + "cascade_mutex " + Opts + " -N c_mutex_1	-I 50",
-//        Path + "cascade_mutex " + Opts + " -N c_mutex_10	-T 10 -I 5000",
-//        Path + "cascade_mutex " + Opts + " -N c_mutex_200	-T 200	-I 2000000",
+//        "cascade_mutex " + Opts + " -N c_mutex_1	-I 50",
+//        "cascade_mutex " + Opts + " -N c_mutex_10	-T 10 -I 5000",
+//        "cascade_mutex " + Opts + " -N c_mutex_200	-T 200	-I 2000000",
 
-//        Path + "cascade_cond " + Opts + " -N c_cond_1	-I 100",
-//        Path + "cascade_cond " + Opts + " -N c_cond_10	-T 10	-I 3000",
-//        Path + "cascade_cond " + Opts + " -N c_cond_200	-T 200	-I 2000000",
+//        "cascade_cond " + Opts + " -N c_cond_1	-I 100",
+//        "cascade_cond " + Opts + " -N c_cond_10	-T 10	-I 3000",
+//        "cascade_cond " + Opts + " -N c_cond_200	-T 200	-I 2000000",
 
-        Path + "cascade_flock " + Opts + " -N c_flock	-I 1000	",
-        Path + "cascade_flock " + Opts + " -N c_flock_10	-P 10   -I 50000",
-        Path + "cascade_flock " + Opts + " -N c_flock_200	-P 200	-I 5000000",
+        "cascade_flock " + Opts + " -N c_flock	-I 1000	",
+        "cascade_flock " + Opts + " -N c_flock_10	-P 10   -I 50000",
+        "cascade_flock " + Opts + " -N c_flock_200	-P 200	-I 5000000",
 
-        Path + "cascade_fcntl " + Opts + " -N c_fcntl_1	-I 2000 	",
-        Path + "cascade_fcntl " + Opts + " -N c_fcntl_10	-P 10 -I 20000",
-        Path + "cascade_fcntl " + Opts + " -N c_fcntl_200	-P 200	-I 5000000",
+        "cascade_fcntl " + Opts + " -N c_fcntl_1	-I 2000 	",
+        "cascade_fcntl " + Opts + " -N c_fcntl_10	-P 10 -I 20000",
+        "cascade_fcntl " + Opts + " -N c_fcntl_200	-P 200	-I 5000000",
 
-        Path + "file_lock " + Opts + " -N file_lock   -I 1000         ",
+        "file_lock " + Opts + " -N file_lock   -I 1000         ",
 
-        Path + "getsockname " + Opts + " -N getsockname	-I 100",
-        Path + "getpeername " + Opts + " -N getpeername	-I 100",
+        "getsockname " + Opts + " -N getsockname	-I 100",
+        "getpeername " + Opts + " -N getpeername	-I 100",
 
-//        Path + "chdir " + Opts + " -N chdir_tmp	-I 2000		$TDIR1 $TDIR2",
-//        Path + "chdir " + Opts + " -N chdir_usr	-I 2000		$VDIR1 $VDIR2",
+//        "chdir " + Opts + " -N chdir_tmp	-I 2000		$TDIR1 $TDIR2",
+//        "chdir " + Opts + " -N chdir_usr	-I 2000		$VDIR1 $VDIR2",
 //
-//        Path + "chdir " + Opts + " -N chgetwd_tmp	-I 3000	-g $TDIR1 $TDIR2",
-//        Path + "chdir " + Opts + " -N chgetwd_usr	-I 3000	-g $VDIR1 $VDIR2",
+//        "chdir " + Opts + " -N chgetwd_tmp	-I 3000	-g $TDIR1 $TDIR2",
+//        "chdir " + Opts + " -N chgetwd_usr	-I 3000	-g $VDIR1 $VDIR2",
 //
-//        Path + "realpath " + Opts + " -N realpath_tmp -I 3000		-f $TDIR1",
-//        Path + "realpath " + Opts + " -N realpath_usr	-I 3000	-f $VDIR1",
+//        "realpath " + Opts + " -N realpath_tmp -I 3000		-f $TDIR1",
+//        "realpath " + Opts + " -N realpath_usr	-I 3000	-f $VDIR1",
 //
-//        Path + "stat " + Opts + " -N stat_tmp -I 1000		-f $TFILE",
-//        Path + "stat " + Opts + " -N stat_usr -I 1000		-f $VFILE",
+//        "stat " + Opts + " -N stat_tmp -I 1000		-f $TFILE",
+//        "stat " + Opts + " -N stat_usr -I 1000		-f $VFILE",
 
-//        Path + "fcntl " + Opts + " -N fcntl_tmp	-I 100	-f $TFILE",
-//        Path + "fcntl " + Opts + " -N fcntl_usr	-I 100	-f $VFILE",
-        Path + "fcntl_ndelay " + Opts + " -N fcntl_ndelay	-I 100	",
+//        "fcntl " + Opts + " -N fcntl_tmp	-I 100	-f $TFILE",
+//        "fcntl " + Opts + " -N fcntl_usr	-I 100	-f $VFILE",
+        "fcntl_ndelay " + Opts + " -N fcntl_ndelay	-I 100	",
 
-//        Path + "lseek " + Opts + " -N lseek_t8k	-s 8k	-I 50	-f $TFILE",
-//        Path + "lseek " + Opts + " -N lseek_u8k	-s 8k	-I 50	-f $VFILE",
+//        "lseek " + Opts + " -N lseek_t8k	-s 8k	-I 50	-f $TFILE",
+//        "lseek " + Opts + " -N lseek_u8k	-s 8k	-I 50	-f $VFILE",
 
-//        Path + "open " + Opts + " -N open_tmp		-B 256		-f $TFILE",
-//        Path + "open " + Opts + " -N open_usr		-B 256		-f $VFILE",
-        Path + "open " + Opts + " -N open_zero		-B 256		-f /dev/zero",
+//        "open " + Opts + " -N open_tmp		-B 256		-f $TFILE",
+//        "open " + Opts + " -N open_usr		-B 256		-f $VFILE",
+        "open " + Opts + " -N open_zero		-B 256		-f /dev/zero",
 
-        Path + "dup " + Opts + " -N dup			-B 512   ",
+        "dup " + Opts + " -N dup			-B 512   ",
 
-        Path + "socket " + Opts + " -N socket_u		-B 256",
-        Path + "socket " + Opts + " -N socket_i		-B 256		-f PF_INET",
+        "socket " + Opts + " -N socket_u		-B 256",
+        "socket " + Opts + " -N socket_i		-B 256		-f PF_INET",
 
-        Path + "socketpair " + Opts + " -N socketpair		-B 256",
+        "socketpair " + Opts + " -N socketpair		-B 256",
 
-        Path + "setsockopt " + Opts + " -N setsockopt		-I 200",
+        "setsockopt " + Opts + " -N setsockopt		-I 200",
 
-        Path + "bind " + Opts + " -N bind			-B 100",
+        "bind " + Opts + " -N bind			-B 100",
 
-        Path + "listen " + Opts + " -N listen		-B 100",
+        "listen " + Opts + " -N listen		-B 100",
 
-//        Path + "connection " + Opts + " -N connection		-B 256 ",
+//        "connection " + Opts + " -N connection		-B 256 ",
 
-        Path + "poll " + Opts + " -N poll_10	-n 10	-I 500",
-        Path + "poll " + Opts + " -N poll_100	-n 100	-I 1000",
-        Path + "poll " + Opts + " -N poll_1000	-n 1000	-I 5000",
+        "poll " + Opts + " -N poll_10	-n 10	-I 500",
+        "poll " + Opts + " -N poll_100	-n 100	-I 1000",
+        "poll " + Opts + " -N poll_1000	-n 1000	-I 5000",
 
-        Path + "poll " + Opts + " -N poll_w10	-n 10	-I 500		-w 1",
-        Path + "poll " + Opts + " -N poll_w100	-n 100	-I 2000		-w 10",
-        Path + "poll " + Opts + " -N poll_w1000	-n 1000	-I 40000	-w 100",
+        "poll " + Opts + " -N poll_w10	-n 10	-I 500		-w 1",
+        "poll " + Opts + " -N poll_w100	-n 100	-I 2000		-w 10",
+        "poll " + Opts + " -N poll_w1000	-n 1000	-I 40000	-w 100",
 
-        Path + "select " + Opts + " -N select_10	-n 10	-I 500",
-        Path + "select " + Opts + " -N select_100	-n 100	-I 1000",
-        Path + "select " + Opts + " -N select_1000	-n 1000	-I 5000",
+        "select " + Opts + " -N select_10	-n 10	-I 500",
+        "select " + Opts + " -N select_100	-n 100	-I 1000",
+        "select " + Opts + " -N select_1000	-n 1000	-I 5000",
 
-        Path + "select " + Opts + " -N select_w10	-n 10	-I 500		-w 1",
-        Path + "select " + Opts + " -N select_w100	-n 100	-I 2000		-w 10",
-        Path + "select " + Opts + " -N select_w1000	-n 1000	-I 40000        -w 100",
+        "select " + Opts + " -N select_w10	-n 10	-I 500		-w 1",
+        "select " + Opts + " -N select_w100	-n 100	-I 2000		-w 10",
+        "select " + Opts + " -N select_w1000	-n 1000	-I 40000        -w 100",
 
-        Path + "sigaction " + Opts + " -N sigaction -I 100",
-        Path + "signal " + Opts + " -N signal -I 1000",
-        Path + "sigprocmask " + Opts + " -N sigprocmask -I 200",
+        "sigaction " + Opts + " -N sigaction -I 100",
+        "signal " + Opts + " -N signal -I 1000",
+        "sigprocmask " + Opts + " -N sigprocmask -I 200",
 
-        Path + "pthread_create   " + Opts + " -N pthread_8		-B 8",
-        Path + "pthread_create   " + Opts + " -N pthread_32		-B 32",
-        Path + "pthread_create   " + Opts + " -N pthread_128		-B 128",
-//        Path + "pthread_create   " + Opts + " -N pthread_512		-B 512",
+        "pthread_create   " + Opts + " -N pthread_8		-B 8",
+        "pthread_create   " + Opts + " -N pthread_32		-B 32",
+        "pthread_create   " + Opts + " -N pthread_128		-B 128",
+//        "pthread_create   " + Opts + " -N pthread_512		-B 512",
 
-        Path + "fork " + Opts + " -N fork_10		-B 10",
-        Path + "fork " + Opts + " -N fork_100		-B 100  -C 100",
-//        Path + "fork " + Opts + " -N fork_1000		-B 1000 -C 50",
+        "fork " + Opts + " -N fork_10		-B 10",
+        "fork " + Opts + " -N fork_100		-B 100  -C 100",
+//        "fork " + Opts + " -N fork_1000		-B 1000 -C 50",
 
-        Path + "exit " + Opts + " -N exit_10		-B 10",
-        Path + "exit " + Opts + " -N exit_100		-B 100",
-//        Path + "exit " + Opts + " -N exit_1000		-B 1000 -C 50",
+        "exit " + Opts + " -N exit_10		-B 10",
+        "exit " + Opts + " -N exit_100		-B 100",
+//        "exit " + Opts + " -N exit_1000		-B 1000 -C 50",
 
-        Path + "exit " + Opts + " -N exit_10_nolibc	-e -B 10",
+        "exit " + Opts + " -N exit_10_nolibc	-e -B 10",
 
-        Path + "exec " + Opts + " -N exec -B 10",
+        "exec " + Opts + " -N exec -B 10",
 
-        Path + "system " + Opts + " -N system -I 1000000",
+        "system " + Opts + " -N system -I 1000000",
 
-        Path + "recurse " + Opts + " -N recurse		-B 512",
+        "recurse " + Opts + " -N recurse		-B 512",
 
-//        Path + "read " + Opts + " -N read_t1k	-s 1k			-f $TFILE",
-//        Path + "read " + Opts + " -N read_t10k	-s 10k			-f $TFILE",
-//        Path + "read " + Opts + " -N read_t100k	-s 100k			-f $TFILE",
+//        "read " + Opts + " -N read_t1k	-s 1k			-f $TFILE",
+//        "read " + Opts + " -N read_t10k	-s 10k			-f $TFILE",
+//        "read " + Opts + " -N read_t100k	-s 100k			-f $TFILE",
 
-//        Path + "read " + Opts + " -N read_u1k	-s 1k			-f $VFILE",
-//        Path + "read " + Opts + " -N read_u10k	-s 10k			-f $VFILE",
-//        Path + "read " + Opts + " -N read_u100k	-s 100k			-f $VFILE",
+//        "read " + Opts + " -N read_u1k	-s 1k			-f $VFILE",
+//        "read " + Opts + " -N read_u10k	-s 10k			-f $VFILE",
+//        "read " + Opts + " -N read_u100k	-s 100k			-f $VFILE",
 
-        Path + "read " + Opts + " -N read_z1k	-s 1k			-f /dev/zero ",
-        Path + "read " + Opts + " -N read_z10k	-s 10k			-f /dev/zero ",
-        Path + "read " + Opts + " -N read_z100k	-s 100k			-f /dev/zero ",
-        Path + "read " + Opts + " -N read_zw100k	-s 100k	         -w	-f /dev/zero ",
+        "read " + Opts + " -N read_z1k	-s 1k			-f /dev/zero ",
+        "read " + Opts + " -N read_z10k	-s 10k			-f /dev/zero ",
+        "read " + Opts + " -N read_z100k	-s 100k			-f /dev/zero ",
+        "read " + Opts + " -N read_zw100k	-s 100k	         -w	-f /dev/zero ",
 
-//        Path + "write " + Opts + " -N write_t1k	-s 1k			-f $TFILE",
-//        Path + "write " + Opts + " -N write_t10k	-s 10k			-f $TFILE",
-//        Path + "write " + Opts + " -N write_t100k	-s 100k			-f $TFILE",
+//        "write " + Opts + " -N write_t1k	-s 1k			-f $TFILE",
+//        "write " + Opts + " -N write_t10k	-s 10k			-f $TFILE",
+//        "write " + Opts + " -N write_t100k	-s 100k			-f $TFILE",
 
-//        Path + "write " + Opts + " -N write_u1k	-s 1k			-f $VFILE",
-//        Path + "write " + Opts + " -N write_u10k	-s 10k			-f $VFILE",
-//        Path + "write " + Opts + " -N write_u100k	-s 100k			-f $VFILE",
+//        "write " + Opts + " -N write_u1k	-s 1k			-f $VFILE",
+//        "write " + Opts + " -N write_u10k	-s 10k			-f $VFILE",
+//        "write " + Opts + " -N write_u100k	-s 100k			-f $VFILE",
 
-        Path + "write " + Opts + " -N write_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
-        Path + "write " + Opts + " -N write_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
-        Path + "write " + Opts + " -N write_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
+        "write " + Opts + " -N write_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
+        "write " + Opts + " -N write_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
+        "write " + Opts + " -N write_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
 
-//        Path + "writev " + Opts + " -N writev_t1k	-s 1k			-f $TFILE",
-//        Path + "writev " + Opts + " -N writev_t10k	-s 10k		        -f $TFILE",
-//        Path + "writev " + Opts + " -N writev_t100k	-s 100k			-f $TFILE",
+//        "writev " + Opts + " -N writev_t1k	-s 1k			-f $TFILE",
+//        "writev " + Opts + " -N writev_t10k	-s 10k		        -f $TFILE",
+//        "writev " + Opts + " -N writev_t100k	-s 100k			-f $TFILE",
 
-//        Path + "writev " + Opts + " -N writev_u1k	-s 1k			-f $VFILE",
-//        Path + "writev " + Opts + " -N writev_u10k	-s 10k			-f $VFILE",
-//        Path + "writev " + Opts + " -N writev_u100k	-s 100k			-f $VFILE",
+//        "writev " + Opts + " -N writev_u1k	-s 1k			-f $VFILE",
+//        "writev " + Opts + " -N writev_u10k	-s 10k			-f $VFILE",
+//        "writev " + Opts + " -N writev_u100k	-s 100k			-f $VFILE",
 
-        Path + "writev " + Opts + " -N writev_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
-        Path + "writev " + Opts + " -N writev_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
-        Path + "writev " + Opts + " -N writev_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
+        "writev " + Opts + " -N writev_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
+        "writev " + Opts + " -N writev_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
+        "writev " + Opts + " -N writev_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
 
-//        Path + "pread " + Opts + " -N pread_t1k	-s 1k	-I 300		-f $TFILE",
-//        Path + "pread " + Opts + " -N pread_t10k	-s 10k	-I 1000		-f $TFILE",
-//        Path + "pread " + Opts + " -N pread_t100k	-s 100k	-I 10000	-f $TFILE",
+//        "pread " + Opts + " -N pread_t1k	-s 1k	-I 300		-f $TFILE",
+//        "pread " + Opts + " -N pread_t10k	-s 10k	-I 1000		-f $TFILE",
+//        "pread " + Opts + " -N pread_t100k	-s 100k	-I 10000	-f $TFILE",
 
-//        Path + "pread " + Opts + " -N pread_u1k	-s 1k	-I 300		-f $VFILE",
-//        Path + "pread " + Opts + " -N pread_u10k	-s 10k	-I 1000		-f $VFILE",
-//        Path + "pread " + Opts + " -N pread_u100k	-s 100k	-I 10000	-f $VFILE",
+//        "pread " + Opts + " -N pread_u1k	-s 1k	-I 300		-f $VFILE",
+//        "pread " + Opts + " -N pread_u10k	-s 10k	-I 1000		-f $VFILE",
+//        "pread " + Opts + " -N pread_u100k	-s 100k	-I 10000	-f $VFILE",
 
-        Path + "pread " + Opts + " -N pread_z1k	-s 1k	-I 300		-f /dev/zero ",
-        Path + "pread " + Opts + " -N pread_z10k	-s 10k	-I 1000		-f /dev/zero ",
-        Path + "pread " + Opts + " -N pread_z100k	-s 100k	-I 2000	-f /dev/zero ",
-        Path + "pread " + Opts + " -N pread_zw100k	-s 100k	-w -I 10000	-f /dev/zero ",
+        "pread " + Opts + " -N pread_z1k	-s 1k	-I 300		-f /dev/zero ",
+        "pread " + Opts + " -N pread_z10k	-s 10k	-I 1000		-f /dev/zero ",
+        "pread " + Opts + " -N pread_z100k	-s 100k	-I 2000	-f /dev/zero ",
+        "pread " + Opts + " -N pread_zw100k	-s 100k	-w -I 10000	-f /dev/zero ",
 
-//        Path + "pwrite " + Opts + " -N pwrite_t1k	-s 1k	-I 500		-f $TFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_t10k	-s 10k	-I 1000		-f $TFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_t100k	-s 100k	-I 10000	-f $TFILE",
+//        "pwrite " + Opts + " -N pwrite_t1k	-s 1k	-I 500		-f $TFILE",
+//        "pwrite " + Opts + " -N pwrite_t10k	-s 10k	-I 1000		-f $TFILE",
+//        "pwrite " + Opts + " -N pwrite_t100k	-s 100k	-I 10000	-f $TFILE",
 
-//        Path + "pwrite " + Opts + " -N pwrite_u1k	-s 1k	-I 500		-f $VFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_u10k	-s 10k	-I 1000		-f $VFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_u100k	-s 100k	-I 20000	-f $VFILE",
+//        "pwrite " + Opts + " -N pwrite_u1k	-s 1k	-I 500		-f $VFILE",
+//        "pwrite " + Opts + " -N pwrite_u10k	-s 10k	-I 1000		-f $VFILE",
+//        "pwrite " + Opts + " -N pwrite_u100k	-s 100k	-I 20000	-f $VFILE",
 
-        Path + "pwrite " + Opts + " -N pwrite_n1k	-s 1k	-I 100		-f /dev/null ",
-        Path + "pwrite " + Opts + " -N pwrite_n10k	-s 10k	-I 100		-f /dev/null ",
-        Path + "pwrite " + Opts + " -N pwrite_n100k	-s 100k	-I 100		-f /dev/null ",
+        "pwrite " + Opts + " -N pwrite_n1k	-s 1k	-I 100		-f /dev/null ",
+        "pwrite " + Opts + " -N pwrite_n10k	-s 10k	-I 100		-f /dev/null ",
+        "pwrite " + Opts + " -N pwrite_n100k	-s 100k	-I 100		-f /dev/null ",
 
-        Path + "mmap " + Opts + " -N mmap_z8k	-l 8k   -I 1000		-f /dev/zero",
-        Path + "mmap " + Opts + " -N mmap_z128k	-l 128k	-I 2000		-f /dev/zero",
-//        Path + "mmap " + Opts + " -N mmap_t8k	-l 8k	-I 1000		-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_t128k	-l 128k	-I 1000		-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_u8k	-l 8k	-I 1000		-f $VFILE",
-//        Path + "mmap " + Opts + " -N mmap_u128k	-l 128k	-I 1000		-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_a8k	-l 8k	-I 200		-f MAP_ANON",
-        Path + "mmap " + Opts + " -N mmap_a128k	-l 128k	-I 200		-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_z8k	-l 8k   -I 1000		-f /dev/zero",
+        "mmap " + Opts + " -N mmap_z128k	-l 128k	-I 2000		-f /dev/zero",
+//        "mmap " + Opts + " -N mmap_t8k	-l 8k	-I 1000		-f $TFILE",
+//        "mmap " + Opts + " -N mmap_t128k	-l 128k	-I 1000		-f $TFILE",
+//        "mmap " + Opts + " -N mmap_u8k	-l 8k	-I 1000		-f $VFILE",
+//        "mmap " + Opts + " -N mmap_u128k	-l 128k	-I 1000		-f $VFILE",
+        "mmap " + Opts + " -N mmap_a8k	-l 8k	-I 200		-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_a128k	-l 128k	-I 200		-f MAP_ANON",
 
 
-        Path + "mmap " + Opts + " -N mmap_rz8k	-l 8k	-I 2000 -r	-f /dev/zero",
-        Path + "mmap " + Opts + " -N mmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
-//        Path + "mmap " + Opts + " -N mmap_rt8k	-l 8k	-I 2000 -r	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_rt128k	-l 128k	-I 20000 -r	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_ru8k	-l 8k	-I 2000 -r	-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_ru128k	-l 128k	-I 20000 -r	-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_ra8k	-l 8k	-I 2000 -r	-f MAP_ANON",
-        Path + "mmap " + Opts + " -N mmap_ra128k	-l 128k	-I 20000 -r	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_rz8k	-l 8k	-I 2000 -r	-f /dev/zero",
+        "mmap " + Opts + " -N mmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
+//        "mmap " + Opts + " -N mmap_rt8k	-l 8k	-I 2000 -r	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_rt128k	-l 128k	-I 20000 -r	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_ru8k	-l 8k	-I 2000 -r	-f $VFILE",
+        "mmap " + Opts + " -N mmap_ru128k	-l 128k	-I 20000 -r	-f $VFILE",
+        "mmap " + Opts + " -N mmap_ra8k	-l 8k	-I 2000 -r	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_ra128k	-l 128k	-I 20000 -r	-f MAP_ANON",
 
-        Path + "mmap " + Opts + " -N mmap_wz8k	-l 8k	-I 5000 -w	-f /dev/zero",
-        Path + "mmap " + Opts + " -N mmap_wz128k	-l 128k	-I 50000 -w	-f /dev/zero",
-//        Path + "mmap " + Opts + " -N mmap_wt8k	-l 8k	-I 5000 -w	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_wt128k	-l 128k	-I 50000 -w	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_wu8k	-l 8k	-I 5000 -w	-f $VFILE",
-//        Path + "mmap " + Opts + " -N mmap_wu128k	-l 128k	-I 500000 -w	-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_wa8k	-l 8k	-I 3000 -w	-f MAP_ANON",
-        Path + "mmap " + Opts + " -N mmap_wa128k	-l 128k	-I 50000 -w	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_wz8k	-l 8k	-I 5000 -w	-f /dev/zero",
+        "mmap " + Opts + " -N mmap_wz128k	-l 128k	-I 50000 -w	-f /dev/zero",
+//        "mmap " + Opts + " -N mmap_wt8k	-l 8k	-I 5000 -w	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_wt128k	-l 128k	-I 50000 -w	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_wu8k	-l 8k	-I 5000 -w	-f $VFILE",
+//        "mmap " + Opts + " -N mmap_wu128k	-l 128k	-I 500000 -w	-f $VFILE",
+        "mmap " + Opts + " -N mmap_wa8k	-l 8k	-I 3000 -w	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_wa128k	-l 128k	-I 50000 -w	-f MAP_ANON",
 
-        Path + "munmap " + Opts + " -N unmap_z8k	-l 8k   -I 500		-f /dev/zero",
-        Path + "munmap " + Opts + " -N unmap_z128k	-l 128k	-I 500		-f /dev/zero",
-//        Path + "munmap " + Opts + " -N unmap_t8k	-l 8k	-I 500		-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_t128k	-l 128k	-I 500		-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_u8k	-l 8k	-I 500		-f $VFILE",
-//        Path + "munmap " + Opts + " -N unmap_u128k	-l 128k	-I 500		-f $VFILE",
-        Path + "munmap " + Opts + " -N unmap_a8k	-l 8k	-I 500		-f MAP_ANON",
-        Path + "munmap " + Opts + " -N unmap_a128k	-l 128k	-I 500		-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_z8k	-l 8k   -I 500		-f /dev/zero",
+        "munmap " + Opts + " -N unmap_z128k	-l 128k	-I 500		-f /dev/zero",
+//        "munmap " + Opts + " -N unmap_t8k	-l 8k	-I 500		-f $TFILE",
+//        "munmap " + Opts + " -N unmap_t128k	-l 128k	-I 500		-f $TFILE",
+//        "munmap " + Opts + " -N unmap_u8k	-l 8k	-I 500		-f $VFILE",
+//        "munmap " + Opts + " -N unmap_u128k	-l 128k	-I 500		-f $VFILE",
+        "munmap " + Opts + " -N unmap_a8k	-l 8k	-I 500		-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_a128k	-l 128k	-I 500		-f MAP_ANON",
 
-        Path + "munmap " + Opts + " -N unmap_rz8k	-l 8k	-I 1000	-r	-f /dev/zero",
-        Path + "munmap " + Opts + " -N unmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
-//        Path + "munmap " + Opts + " -N unmap_rt8k	-l 8k	-I 1000	-r	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_rt128k	-l 128k	-I 3000	-r	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_ru8k	-l 8k	-I 1000	-r	-f $VFILE",
-//        Path + "munmap " + Opts + " -N unmap_ru128k	-l 128k	-I 3000	-r	-f $VFILE",
-        Path + "munmap " + Opts + " -N unmap_ra8k	-l 8k	-I 1000	-r	-f MAP_ANON",
-        Path + "munmap " + Opts + " -N unmap_ra128k	-l 128k	-I 2000	-r	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_rz8k	-l 8k	-I 1000	-r	-f /dev/zero",
+        "munmap " + Opts + " -N unmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
+//        "munmap " + Opts + " -N unmap_rt8k	-l 8k	-I 1000	-r	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_rt128k	-l 128k	-I 3000	-r	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_ru8k	-l 8k	-I 1000	-r	-f $VFILE",
+//        "munmap " + Opts + " -N unmap_ru128k	-l 128k	-I 3000	-r	-f $VFILE",
+        "munmap " + Opts + " -N unmap_ra8k	-l 8k	-I 1000	-r	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_ra128k	-l 128k	-I 2000	-r	-f MAP_ANON",
 
-//        Path + "connection " + Opts + " -N conn_connect		-B 256 	-c",
+//        "connection " + Opts + " -N conn_connect		-B 256 	-c",
 
-        Path + "munmap " + Opts + " -N unmap_wz8k	-l 8k	-I 1000	-w	-f /dev/zero",
-        Path + "munmap " + Opts + " -N unmap_wz128k	-l 128k	-I 8000	-w	-f /dev/zero",
-//        Path + "munmap " + Opts + " -N unmap_wt8k	-l 8k	-I 1000	-w	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_wt128k	-l 128k	-I 10000	-w	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_wu8k	-l 8k	-I 1000	-w	-f $VFILE",
-//        Path + "munmap " + Opts + " -N unmap_wu128k	-l 128k	-I 50000	-w	-f $VFILE",
-        Path + "munmap " + Opts + " -N unmap_wa8k	-l 8k	-I 1000	-w	-f MAP_ANON",
-        Path + "munmap " + Opts + " -N unmap_wa128k	-l 128k	-I 10000	-w	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_wz8k	-l 8k	-I 1000	-w	-f /dev/zero",
+        "munmap " + Opts + " -N unmap_wz128k	-l 128k	-I 8000	-w	-f /dev/zero",
+//        "munmap " + Opts + " -N unmap_wt8k	-l 8k	-I 1000	-w	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_wt128k	-l 128k	-I 10000	-w	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_wu8k	-l 8k	-I 1000	-w	-f $VFILE",
+//        "munmap " + Opts + " -N unmap_wu128k	-l 128k	-I 50000	-w	-f $VFILE",
+        "munmap " + Opts + " -N unmap_wa8k	-l 8k	-I 1000	-w	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_wa128k	-l 128k	-I 10000	-w	-f MAP_ANON",
 
 
-        Path + "mprotect " + Opts + " -N mprot_z8k	-l 8k  -I 300			-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_z128k	-l 128k	-I 500		-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_wz8k	-l 8k	-I 500	-w	-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_wz128k	-l 128k	-I 1000	-w	-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_twz8k  -l 8k   -I 1000 -w -t   -f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_tw128k -l 128k -I 2000 -w -t   -f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_tw4m   -l 4m   -w -t -B 1  -f /dev/zero",
+        "mprotect " + Opts + " -N mprot_z8k	-l 8k  -I 300			-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_z128k	-l 128k	-I 500		-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_wz8k	-l 8k	-I 500	-w	-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_wz128k	-l 128k	-I 1000	-w	-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_twz8k  -l 8k   -I 1000 -w -t   -f /dev/zero",
+        "mprotect " + Opts + " -N mprot_tw128k -l 128k -I 2000 -w -t   -f /dev/zero",
+        "mprotect " + Opts + " -N mprot_tw4m   -l 4m   -w -t -B 1  -f /dev/zero",
 
-        Path + "pipe " + Opts + " -N pipe_pst1	-s 1	-I 1000	-x pipe -m st",
-        Path + "pipe " + Opts + " -N pipe_pmt1	-s 1	-I 8000	-x pipe -m mt",
-        Path + "pipe " + Opts + " -N pipe_pmp1	-s 1	-I 8000	-x pipe -m mp",
-        Path + "pipe " + Opts + " -N pipe_pst4k	-s 4k	-I 1000	-x pipe -m st",
-        Path + "pipe " + Opts + " -N pipe_pmt4k	-s 4k	-I 8000	-x pipe -m mt",
-        Path + "pipe " + Opts + " -N pipe_pmp4k	-s 4k	-I 8000	-x pipe -m mp",
+        "pipe " + Opts + " -N pipe_pst1	-s 1	-I 1000	-x pipe -m st",
+        "pipe " + Opts + " -N pipe_pmt1	-s 1	-I 8000	-x pipe -m mt",
+        "pipe " + Opts + " -N pipe_pmp1	-s 1	-I 8000	-x pipe -m mp",
+        "pipe " + Opts + " -N pipe_pst4k	-s 4k	-I 1000	-x pipe -m st",
+        "pipe " + Opts + " -N pipe_pmt4k	-s 4k	-I 8000	-x pipe -m mt",
+        "pipe " + Opts + " -N pipe_pmp4k	-s 4k	-I 8000	-x pipe -m mp",
 
-        Path + "pipe " + Opts + " -N pipe_sst1	-s 1	-I 1000	-x sock -m st",
-        Path + "pipe " + Opts + " -N pipe_smt1	-s 1	-I 8000	-x sock -m mt",
-        Path + "pipe " + Opts + " -N pipe_smp1	-s 1	-I 8000	-x sock -m mp",
-        Path + "pipe " + Opts + " -N pipe_sst4k	-s 4k	-I 1000	-x sock -m st",
-        Path + "pipe " + Opts + " -N pipe_smt4k	-s 4k	-I 8000	-x sock -m mt",
-        Path + "pipe " + Opts + " -N pipe_smp4k	-s 4k	-I 8000	-x sock -m mp",
+        "pipe " + Opts + " -N pipe_sst1	-s 1	-I 1000	-x sock -m st",
+        "pipe " + Opts + " -N pipe_smt1	-s 1	-I 8000	-x sock -m mt",
+        "pipe " + Opts + " -N pipe_smp1	-s 1	-I 8000	-x sock -m mp",
+        "pipe " + Opts + " -N pipe_sst4k	-s 4k	-I 1000	-x sock -m st",
+        "pipe " + Opts + " -N pipe_smt4k	-s 4k	-I 8000	-x sock -m mt",
+        "pipe " + Opts + " -N pipe_smp4k	-s 4k	-I 8000	-x sock -m mp",
 
-        Path + "pipe " + Opts + " -N pipe_tst1	-s 1	-I 1000	-x tcp  -m st",
-        Path + "pipe " + Opts + " -N pipe_tmt1	-s 1	-I 8000	-x tcp  -m mt",
-        Path + "pipe " + Opts + " -N pipe_tmp1	-s 1	-I 8000	-x tcp  -m mp",
-        Path + "pipe " + Opts + " -N pipe_tst4k	-s 4k	-I 1000	-x tcp  -m st",
-        Path + "pipe " + Opts + " -N pipe_tmt4k	-s 4k	-I 8000	-x tcp  -m mt",
-        Path + "pipe " + Opts + " -N pipe_tmp4k	-s 4k	-I 8000	-x tcp  -m mp",
+        "pipe " + Opts + " -N pipe_tst1	-s 1	-I 1000	-x tcp  -m st",
+        "pipe " + Opts + " -N pipe_tmt1	-s 1	-I 8000	-x tcp  -m mt",
+        "pipe " + Opts + " -N pipe_tmp1	-s 1	-I 8000	-x tcp  -m mp",
+        "pipe " + Opts + " -N pipe_tst4k	-s 4k	-I 1000	-x tcp  -m st",
+        "pipe " + Opts + " -N pipe_tmt4k	-s 4k	-I 8000	-x tcp  -m mt",
+        "pipe " + Opts + " -N pipe_tmp4k	-s 4k	-I 8000	-x tcp  -m mp",
 
-//        Path + "connection " + Opts + " -N conn_accept		-B 256      -a",
+//        "connection " + Opts + " -N conn_accept		-B 256      -a",
 
-        Path + "close_tcp " + Opts + " -N close_tcp		-B 32  "
+        "close_tcp " + Opts + " -N close_tcp		-B 32  "
 
     );
 
@@ -380,6 +379,10 @@
     protected String getTag() {
         return "Native Micro";
     };
+    @Override
+    protected String getPath() {
+        return "/system/bin/bench_";
+    }
     protected final List<String> getCommands() {
         return COMMANDS;
     }
diff --git a/src/org/zeroxlab/benchmark/Benchmark.java b/src/org/zeroxlab/benchmark/Benchmark.java
index 4e40007..eab1b18 100644
--- a/src/org/zeroxlab/benchmark/Benchmark.java
+++ b/src/org/zeroxlab/benchmark/Benchmark.java
@@ -41,6 +41,7 @@
 import android.app.ProgressDialog;
 
 import org.opensolaris.hub.libmicro.*;
+import org.zeroxlab.byteunix.*;
 
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
@@ -98,7 +99,9 @@
         Case teapot = new CaseTeapot();
         Case gc     = new CaseGC();
         Case libMicro = new NativeCaseMicro();
+        Case libUbench = new NativeCaseUbench();
 
+        mCases.add(libUbench);
         // mflops
         mCases.add(arith);
         mCases.add(scimark2);
diff --git a/src/org/zeroxlab/benchmark/NativeTester.java b/src/org/zeroxlab/benchmark/NativeTester.java
index 900809a..15d0e07 100644
--- a/src/org/zeroxlab/benchmark/NativeTester.java
+++ b/src/org/zeroxlab/benchmark/NativeTester.java
@@ -56,7 +56,7 @@
     public final String ENV_VAR = "ZXBENCH_PORT";
 
     public final int CHECK_FREQ = 1000;
-    public final int IDLE_KILL = 20000; //1000 * 60 * 5 (5mins);
+    public final int IDLE_KILL = 40000; //1000 * 60 * 5 (5mins);
 
     public String mCommand;
     public Handler mHandler;
@@ -82,6 +82,8 @@
     private Socket mClientSocket = null;
     private int mBindPort = -1;
 
+    private String mCurrentCommand;
+
     public NativeTester() {
         mRuntime = Runtime.getRuntime();
     }
@@ -97,7 +99,15 @@
             public void handleMessage(Message msg) {
                 switch (msg.what) {
                     case GUINOTIFIER:
-                        mTextView.setText("idle time: " + mIdleTime + "\nstderr -->\n" + stdErr.toString() + "\nstdout -->\n" + stdOut.toString());
+                        StringBuilder display = new StringBuilder();
+                        display.append("Idle time: " + (int)mIdleTime + "ms");
+                        display.append("\nCommand -->\n");
+                        display.append(mCurrentCommand);
+                        display.append("\nStderr -->\n");
+                        display.append(stdErr.toString());
+                        display.append("\nStdout -->\n");
+                        display.append(stdOut.toString());
+                        mTextView.setText(display.toString());
                         mScrollView.post(new Runnable() { 
                             public void run() { 
                                 mScrollView.fullScroll(ScrollView.FOCUS_DOWN); 
@@ -112,6 +122,7 @@
     }
 
     protected abstract List<String> getCommands();
+    protected abstract String getPath();
 
     protected abstract boolean saveResult(Intent intent);
 
@@ -154,6 +165,7 @@
     class ProcessRunner extends Thread {
         public void run() {
             for(String command: getCommands()) {
+                mCurrentCommand = command;
                 Log.i(TAG, "------------------------ process " + command + " start ------------------------ ");
                 try {
                     mServerSocket = new ServerSocket(0);
@@ -170,7 +182,7 @@
                     ENV_VAR + "=" + mBindPort,
                 };
                 try {
-                    mProcess = mRuntime.exec(command, envp);
+                    mProcess = mRuntime.exec(getPath() + command, envp, getFilesDir());
                     if(mProcess == null)
                         throw new Exception();
                     mProcessRunning = true;
diff --git a/src/org/zeroxlab/byteunix/NativeCaseUbench.java b/src/org/zeroxlab/byteunix/NativeCaseUbench.java
index 039987d..78935f0 100644
--- a/src/org/zeroxlab/byteunix/NativeCaseUbench.java
+++ b/src/org/zeroxlab/byteunix/NativeCaseUbench.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensolaris.hub.libmicro;
+package org.zeroxlab.byteunix;
 
 import org.zeroxlab.benchmark.*;
 
@@ -31,7 +31,7 @@
 
 import java.util.ArrayList;
 
-import org.opensolaris.hub.libmicro.NativeTesterMicro;
+import org.zeroxlab.byteunix.NativeTesterUbench;
 
 public class NativeCaseUbench  extends Case {
 
@@ -42,7 +42,7 @@
     public static int Round  = 1;
 
     public NativeCaseUbench() {
-        super("NativeCaseMicro", "org.opensolaris.hub.libmicro.NativeTesterMicro", Repeat, Round);
+        super("NativeCaseUbench", "org.zeroxlab.byteunix.NativeTesterUbench", Repeat, Round);
 
         mType = "UnixBench";
         String [] _tmp = {
@@ -58,7 +58,7 @@
     }
 
     public String getDescription() {
-        return "(Requires root and pre-deployed binaries) UnixBench is the original BYTE UNIX benchmark suite, updated and revised by many people over the years. ";
+        return "(Requires root and pre-deployed binaries) UnixBench is the original BYTE UNIX benchmark suite, updated and revised by many people over the years. Takes about 30 minutes to run.";
     }
 
     private void generateInfo() {
@@ -95,13 +95,22 @@
         ArrayList<Scenario> scenarios = new ArrayList<Scenario>();
 
         Bundle bundle = mInfo[0]; // only 1 run
-        for(String command: NativeTesterMicro.COMMANDS) {
+        for(String command: NativeTesterUbench.COMMANDS) {
+            if(!bundle.containsKey(command+"S") || !bundle.containsKey(command+"FA"))
+                continue;
             String name = bundle.getString(command+"S");
             String results = bundle.getString(command+"FA");
+            bundle.remove(command+"S");
+            bundle.remove(command+"FA");
             if(name == null || results == null)
                 continue;
             ArrayList<String> _mTags = new ArrayList<String>();
-            _mTags.add((String)("exe:" + command.substring(command.lastIndexOf("_")+1, command.indexOf(" "))));
+            int space = command.indexOf(" ");
+            if(space > 0)
+                _mTags.add((String)("exe:" + command.substring(0, command.indexOf(" "))));
+            else
+                _mTags.add((String)("exe:" + command));
+            //TODO add unit as tag
 
             String [] __mTags =  (String[])(_mTags.toArray(new String[_mTags.size()]));
             Scenario s = new Scenario(name, mType, __mTags, true);
@@ -114,9 +123,9 @@
 
     @Override
     protected boolean saveResult(Intent intent, int index) {
-        Bundle info = intent.getBundleExtra(NativeTesterMicro.RESULT);
+        Bundle info = intent.getBundleExtra(NativeTesterUbench.RESULT);
         if (info == null) {
-            Log.i(TAG, "Cannot find LibMicroInfo");
+            Log.i(TAG, "Cannot find LibUbenchInfo");
             return false;
         } else {
             mInfo[index] = info;
diff --git a/src/org/zeroxlab/byteunix/NativeTesterUbench.java b/src/org/zeroxlab/byteunix/NativeTesterUbench.java
index bbe5aa4..f84674b 100644
--- a/src/org/zeroxlab/byteunix/NativeTesterUbench.java
+++ b/src/org/zeroxlab/byteunix/NativeTesterUbench.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensolaris.hub.libmicro;
+package org.zeroxlab.byteunix;
 
 import org.zeroxlab.benchmark.*;
 
@@ -34,35 +34,49 @@
 
     public static final String REPORT = "REPORT";
     public static final String RESULT = "RESULT";
-    private static final String Path = "/system/bin/bench_ubench_";
     public static final List<String> COMMANDS  = Arrays.asList(
         "dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10",
         "whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double",
         "execl 30","execl 30","execl 30",
-        "fstime -c -t 30 -d /data/ -b 1024 -m 2000",
-        "fstime -c -t 30 -d /data/ -b 256 -m 500",
-        "fstime -c -t 30 -d /data -b 4096 -m 8000",
+        "fstime -c -t 30 -d ./ -b 1024 -m 2000","fstime -c -t 30 -d ./ -b 1024 -m 2000","fstime -c -t 30 -d ./ -b 1024 -m 2000",
+        "fstime -c -t 30 -d ./ -b 256 -m 500","fstime -c -t 30 -d ./ -b 256 -m 500","fstime -c -t 30 -d ./ -b 256 -m 500",
+        "fstime -c -t 30 -d ./ -b 4096 -m 8000","fstime -c -t 30 -d ./ -b 4096 -m 8000","fstime -c -t 30 -d ./ -b 4096 -m 8000",
         "pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10",
         "context1 10","context1 10","context1 10",
         "spawn 30","spawn 30","spawn 30",
-        "syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10",
-        "looper 60 /system/bin/bench_ubench_multi.sh 1",
-        "looper 60 /system/bin/bench_ubench_multi.sh 8"
+        "syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10"
+//        "looper 60 /system/bin/bench_ubench_multi.sh 1",
+//        "looper 60 /system/bin/bench_ubench_multi.sh 8"
     );
     public static final HashMap<String, String> commandToName = new HashMap<String, String>() {
         {
             put("dhry2reg 10", "dhry2reg");
             put("whetstone-double", "whetstone-double");
             put("execl 30", "execl");
-            put("fstime -c -t 30 -d /data/ -b 1024 -m 2000", "fstime");
-            put("fstime -c -t 30 -d /data/ -b 256 -m 500", "fsbuffer");
-            put("fstime -c -t 30 -d /data -b 4096 -m 8000", "fsdisk-w");
             put("pipe 10", "pipe");
             put("context1 10", "context1");
             put("spawn 30", "spawn");
             put("syscall 10", "syscall");
-            put("looper 60 /system/bin/bench_ubench_multi.sh 1", "shell1");
-            put("looper 60 /system/bin/bench_ubench_multi.sh 8", "shell8");
+
+            put("arithoh 10", "Arithoh");
+            put("double 10", "Arithmetic:double");
+            put("float 10", "Arithmetic:float");
+            put("int 10", "Arithmetic:int");
+            put("long 10", "Arithmetic:long");
+            put("short 10", "Arithmetic:short");
+
+            put("fstime -c -t 30 -d ./ -b 1024 -m 2000", "fstime");
+            put("fstime -c -t 30 -d ./ -b 256 -m 500", "fsbuffer");
+            put("fstime -c -t 30 -d ./ -b 4096 -m 8000", "fsdisk");
+            put("fstime -r -t 30 -d ./ -b 1024 -m 2000", "fstime-r");
+            put("fstime -r -t 30 -d ./ -b 256 -m 500", "fsbuffer-r");
+            put("fstime -r -t 30 -d ./ -b 4096 -m 8000", "fsdisk-r");
+            put("fstime -w -t 30 -d ./ -b 1024 -m 2000", "fstime-w");
+            put("fstime -w -t 30 -d ./ -b 256 -m 500", "fsbuffer-w");
+            put("fstime -w -t 30 -d ./ -b 4096 -m 8000", "fsdisk-r");
+
+//            put("looper 60 /system/bin/bench_ubench_multi.sh 1", "shell1");
+//            put("looper 60 /system/bin/bench_ubench_multi.sh 8", "shell8");
         }
     };
 
@@ -71,12 +85,17 @@
     protected String getTag() {
         return "Native Ubench";
     };
+    @Override
+    protected String getPath() {
+        return "/system/bin/bench_ubench_";
+    }
     protected final List<String> getCommands() {
         return COMMANDS;
     }
 
     @Override
     protected boolean saveResult(Intent intent) {
+        /* The strategy of this function is ported directly from the Run perl script of byte unix */
         Bundle bundle = new Bundle();
 //        StringBuilder report = new StringBuilder();
         for (String command: getCommands()) {
@@ -86,20 +105,29 @@
 //            report.append("---------------------------\n");
             if(!mSockets.containsKey(command))
                 continue;
+            Log.i(TAG, "Socket: " + mSockets.get(command));
+            if(mSockets.get(command).trim().length() == 0)
+                continue;
             String [] lines = mSockets.get(command).trim().split("\n");
+
+            mSockets.remove(command);
+
+            Log.i(TAG, "line0: " + lines[0]);
+            String [] initFields = lines[0].split("[|]");
+            // COUNT|2734838|1|lps|10.000082
             StringBuilder list = new StringBuilder();;
-            Integer base = (int)Float.parseFloat(lines[0].trim().split("|")[1]);
-            String unit = lines[0].trim().split("|")[2];
+            Integer base = (int)Float.parseFloat(initFields[2]);
+            String unit = initFields[3];
             ArrayList<Measure> measures = new ArrayList<Measure>();
             for(String line: lines) {
-                String [] sp = line.trim().split("|");
-                if (sp.length != 4) {
+                String [] fields = line.trim().split("[|]");
+                if (fields.length != 5) {
                     Log.w(TAG, "error line: " + line.trim());
                     continue;
                 }
-                Float count = Float.parseFloat(sp[0]);
-                Float time = Float.parseFloat(sp[3]);
-                if((!sp[2].equals(unit)) || ((int)Float.parseFloat(sp[1]) != base)){
+                Float count = Float.parseFloat(fields[1]);
+                Float time = Float.parseFloat(fields[4]);
+                if((!fields[3].equals(unit)) || ((int)Float.parseFloat(fields[2]) != base)){
                     Log.w(TAG, "error line: " + line.trim());
                     continue;
                 }
@@ -114,8 +142,11 @@
                     list.append( (measure.count/(measure.time/base)) + " ");
                 }
             }
-            bundle.putString(command+"S", commandToName.get(command) + "(" + unit + ")");
+            bundle.putString(command+"S", commandToName.get(command) + "&#040;" + unit + "&#041;");
             bundle.putString(command+"FA", list.toString().trim());
+            Log.i(TAG, "command: " + command);
+            Log.i(TAG, "save `" + command+"S" + "` -> " + commandToName.get(command) + "(" + unit + ")");
+            Log.i(TAG, "save `" + command+"FA" + "` -> " + list.toString().trim());
         }
 //        bundle.putString(REPORT, report.toString());
         intent.putExtra(RESULT, bundle);
@@ -132,7 +163,6 @@
         this.count = count;
         this.time = time;
     }
-    
 
     public int compareTo (Object o) {
         if (((Measure)o).count > this.count)