OSDN Git Service

Add a "unit-tests" sample application to perform unit testing.
authorDavid 'Digit' Turner <digit@google.com>
Mon, 27 Jul 2009 10:26:17 +0000 (12:26 +0200)
committerDavid 'Digit' Turner <digit@google.com>
Mon, 27 Jul 2009 10:26:17 +0000 (12:26 +0200)
apps/unit-tests/Application.mk [new file with mode: 0644]
sources/tests/Android.mk [new file with mode: 0644]
sources/tests/test-CLEAR_VARS/Android.mk [new file with mode: 0644]
sources/tests/test-LOCAL_CFLAGS/Android.mk [new file with mode: 0644]
sources/tests/test-LOCAL_CFLAGS/test-LOCAL_CFLAGS-1.c [new file with mode: 0644]
sources/tests/test-LOCAL_CFLAGS/test-LOCAL_CFLAGS-2.cpp [new file with mode: 0644]
sources/tests/test-LOCAL_CPPFLAGS/Android.mk [new file with mode: 0644]
sources/tests/test-LOCAL_CPPFLAGS/test-LOCAL_CPPFLAGS-1.c [new file with mode: 0644]
sources/tests/test-LOCAL_CPPFLAGS/test-LOCAL_CPPFLAGS-2.cpp [new file with mode: 0644]

diff --git a/apps/unit-tests/Application.mk b/apps/unit-tests/Application.mk
new file mode 100644 (file)
index 0000000..a6a9904
--- /dev/null
@@ -0,0 +1,5 @@
+APP_MODULES := \
+    test-LOCAL_CFLAGS \
+    test-LOCAL_CPPFLAGS
+
+APP_PROJECT_PATH := /tmp/ndk-unit-tests
diff --git a/sources/tests/Android.mk b/sources/tests/Android.mk
new file mode 100644 (file)
index 0000000..5053e7d
--- /dev/null
@@ -0,0 +1 @@
+include $(call all-subdir-makefiles)
diff --git a/sources/tests/test-CLEAR_VARS/Android.mk b/sources/tests/test-CLEAR_VARS/Android.mk
new file mode 100644 (file)
index 0000000..fde4e7b
--- /dev/null
@@ -0,0 +1,43 @@
+# This test is used to check that include $(CLEAR_VARS) does
+# indeed clear all variables we care for.
+
+LOCAL_PATH := $(call my-dir)
+
+# The list of LOCAL_XXX variables documented by docs/ANDROID-MK.TXT
+# Note that LOCAL_PATH is not cleared
+VARS_LOCAL := \
+    MODULE \
+    SRC_FILES \
+    CPP_EXTENSION \
+    C_INCLUDES \
+    CFLAGS \
+    CPPFLAGS \
+    CXXFLAGS \
+    STATIC_LIBRARIES \
+    SHARED_LIBRARIES \
+    LDLIBS \
+    ALLOW_UNDEFINED_SYMBOLS \
+    ARM_MODE \
+
+include $(CLEAR_VARS)
+
+$(for _var,$(VARS_LOCAL),\
+  $(eval LOCAL_$(_var) := 1)\
+)
+
+include $(CLEAR_VARS)
+
+STATUS := ok
+$(foreach _var,$(VARS_LOCAL),\
+    $(if $(LOCAL_$(_var)),\
+      $(info variable LOCAL_$(_var) is not cleared by CLEAR_VARS)\
+      $(eval STATUS := ko)\
+    ,)\
+)
+
+ifeq ($(STATUS),ko)
+  $(error Aborting: CLEAR_VARS does not work !)
+endif
+
+VARS_LOCAL := $(empty)
+STATUS     := $(empty)
diff --git a/sources/tests/test-LOCAL_CFLAGS/Android.mk b/sources/tests/test-LOCAL_CFLAGS/Android.mk
new file mode 100644 (file)
index 0000000..25348d1
--- /dev/null
@@ -0,0 +1,13 @@
+# Test that LOCAL_CFLAGS works for both C and C++ sources
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := test-LOCAL_CFLAGS
+LOCAL_SRC_FILES := test-LOCAL_CFLAGS-1.c \
+                   test-LOCAL_CFLAGS-2.cpp \
+
+LOCAL_CFLAGS    := -DBANANA=100
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/sources/tests/test-LOCAL_CFLAGS/test-LOCAL_CFLAGS-1.c b/sources/tests/test-LOCAL_CFLAGS/test-LOCAL_CFLAGS-1.c
new file mode 100644 (file)
index 0000000..c14a62c
--- /dev/null
@@ -0,0 +1,10 @@
+#if !defined(BANANA)
+#  error LOCAL_CFLAGS does not work for C source file
+#endif
+#if BANANA != 100
+#  error LOCAL_CFLAGS does not work correctly for C source file
+#endif
+
+void  __banana_foo1(void)
+{
+}
diff --git a/sources/tests/test-LOCAL_CFLAGS/test-LOCAL_CFLAGS-2.cpp b/sources/tests/test-LOCAL_CFLAGS/test-LOCAL_CFLAGS-2.cpp
new file mode 100644 (file)
index 0000000..4b769c0
--- /dev/null
@@ -0,0 +1,10 @@
+#if !defined(BANANA)
+#  error LOCAL_CFLAGS does not work for C++ source file
+#endif
+#if BANANA != 100
+#  error LOCAL_CFLAGS does not work correctly for C++ source file
+#endif
+
+void  __banana_foo2(void)
+{
+}
diff --git a/sources/tests/test-LOCAL_CPPFLAGS/Android.mk b/sources/tests/test-LOCAL_CPPFLAGS/Android.mk
new file mode 100644 (file)
index 0000000..45c9b6d
--- /dev/null
@@ -0,0 +1,17 @@
+# Test that LOCAL_CPPFLAGS only works for C++ sources
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := test-LOCAL_CPPFLAGS
+LOCAL_SRC_FILES := test-LOCAL_CPPFLAGS-1.c \
+                   test-LOCAL_CPPFLAGS-2.cpp \
+
+LOCAL_CFLAGS   := -DBANANA=200
+
+# Note, the -UBANANA is only there to prevent a warning
+# the test works well without it.
+LOCAL_CPPFLAGS := -UBANANA -DBANANA=300
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/sources/tests/test-LOCAL_CPPFLAGS/test-LOCAL_CPPFLAGS-1.c b/sources/tests/test-LOCAL_CPPFLAGS/test-LOCAL_CPPFLAGS-1.c
new file mode 100644 (file)
index 0000000..c5f2a6e
--- /dev/null
@@ -0,0 +1,10 @@
+#if !defined(BANANA)
+#  error LOCAL_CPPFLAGS does not work for C source file
+#endif
+#if BANANA != 200
+#  error LOCAL_CPPFLAGS does not work correctly for C source file
+#endif
+
+void  __banana_foo1(void)
+{
+}
diff --git a/sources/tests/test-LOCAL_CPPFLAGS/test-LOCAL_CPPFLAGS-2.cpp b/sources/tests/test-LOCAL_CPPFLAGS/test-LOCAL_CPPFLAGS-2.cpp
new file mode 100644 (file)
index 0000000..e8853e8
--- /dev/null
@@ -0,0 +1,10 @@
+#if !defined(BANANA)
+#  error LOCAL_CPPFLAGS does not work for C++ source file
+#endif
+#if BANANA != 300
+#  error LOCAL_CPPFLAGS does not work correctly for C++ source file
+#endif
+
+void  __banana_foo2(void)
+{
+}