OSDN Git Service

auto import from //branches/cupcake/...@131421
authorThe Android Open Source Project <initial-contribution@android.com>
Fri, 13 Feb 2009 20:57:54 +0000 (12:57 -0800)
committerThe Android Open Source Project <initial-contribution@android.com>
Fri, 13 Feb 2009 20:57:54 +0000 (12:57 -0800)
tests/schedtest/Android.mk [new file with mode: 0644]
tests/schedtest/schedtest.c [new file with mode: 0644]

diff --git a/tests/schedtest/Android.mk b/tests/schedtest/Android.mk
new file mode 100644 (file)
index 0000000..58e8d62
--- /dev/null
@@ -0,0 +1,10 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+       schedtest.c
+
+LOCAL_MODULE := schedtest
+
+include $(BUILD_EXECUTABLE)
diff --git a/tests/schedtest/schedtest.c b/tests/schedtest/schedtest.c
new file mode 100644 (file)
index 0000000..f15b66b
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+** Copyright 2008 The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <sys/uio.h>
+#include <unistd.h>
+
+int main(int argc, char **argv) {
+    int i;
+
+    struct timeval tv1;
+    struct timeval tv2;
+    long max = 0;
+    long avg = 0;
+
+    for(i = 1; ; i++) {
+        gettimeofday(&tv1, NULL);
+        usleep(1000);
+        gettimeofday(&tv2, NULL);
+
+        long usec = (tv2.tv_sec - tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec;
+        avg += usec;
+
+        if (usec > max) max = usec;
+        if (!(i % 1000)) {
+            avg /= 1000;
+            printf("max %ld\tavg %ld\n", max, avg);
+            max = 0;
+            avg = 0;
+        }
+    }
+    return 0;
+}