Merge "Native tests use a text file based test list." into klp-dev
diff --git a/build/test_executable.mk b/build/test_executable.mk
index 74b3a95..0d42d02 100644
--- a/build/test_executable.mk
+++ b/build/test_executable.mk
@@ -27,14 +27,14 @@
cts_executable_xml := $(CTS_TESTCASES_OUT)/$(LOCAL_MODULE).xml
-$(cts_executable_xml): PRIVATE_PATH := $(cts_src_test_path)
$(cts_executable_xml): PRIVATE_TEST_PACKAGE := $(LOCAL_CTS_TEST_PACKAGE)
$(cts_executable_xml): PRIVATE_EXECUTABLE := $(LOCAL_MODULE)
+$(cts_executable_xml): PRIVATE_TEST_LIST := $(LOCAL_PATH)/$(LOCAL_MODULE)_list.txt
$(cts_executable_xml): $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) $(CTS_EXPECTATIONS) $(CTS_NATIVE_TEST_SCANNER) $(CTS_XML_GENERATOR)
$(hide) echo Generating test description for native package $(PRIVATE_TEST_PACKAGE)
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
- $(hide) $(CTS_NATIVE_TEST_SCANNER) -s $(PRIVATE_PATH) \
- -t $(PRIVATE_TEST_PACKAGE) | \
+ $(hide) cat $(PRIVATE_TEST_LIST) | \
+ $(CTS_NATIVE_TEST_SCANNER) -t $(PRIVATE_TEST_PACKAGE) | \
$(CTS_XML_GENERATOR) -t native \
-n $(PRIVATE_EXECUTABLE) \
-p $(PRIVATE_TEST_PACKAGE) \
diff --git a/tests/expectations/knownfailures.txt b/tests/expectations/knownfailures.txt
index 9d28c34..9b089df 100644
--- a/tests/expectations/knownfailures.txt
+++ b/tests/expectations/knownfailures.txt
@@ -29,76 +29,5 @@
name: "android.hardware.cts.SensorIntegrationTests#testSensorsWithSeveralClients",
name: "android.hardware.cts.SensorIntegrationTests#testSensorsMovingRates",
bug: 11352697
-},
-{
- name: "android.bionic.DEATHTEST#bzero_fortified",
- name: "android.bionic.DEATHTEST#bzero_fortified2",
- name: "android.bionic.DEATHTEST#memcpy_fortified",
- name: "android.bionic.DEATHTEST#memmove_fortified",
- name: "android.bionic.DEATHTEST#snprintf_fortified",
- name: "android.bionic.DEATHTEST#snprintf_fortified2",
- name: "android.bionic.DEATHTEST#sprintf2_fortified",
- name: "android.bionic.DEATHTEST#sprintf2_fortified2",
- name: "android.bionic.DEATHTEST#sprintf_fortified",
- name: "android.bionic.DEATHTEST#sprintf_fortified2",
- name: "android.bionic.DEATHTEST#strcat2_fortified2",
- name: "android.bionic.DEATHTEST#strcat_fortified",
- name: "android.bionic.DEATHTEST#strcat_fortified2",
- name: "android.bionic.DEATHTEST#strchr_fortified",
- name: "android.bionic.DEATHTEST#strchr_fortified2",
- name: "android.bionic.DEATHTEST#strcpy2_fortified",
- name: "android.bionic.DEATHTEST#strcpy2_fortified2",
- name: "android.bionic.DEATHTEST#strcpy3_fortified",
- name: "android.bionic.DEATHTEST#strcpy3_fortified2",
- name: "android.bionic.DEATHTEST#strcpy4_fortified",
- name: "android.bionic.DEATHTEST#strcpy_fortified",
- name: "android.bionic.DEATHTEST#strcpy_fortified2",
- name: "android.bionic.DEATHTEST#strlcat_fortified",
- name: "android.bionic.DEATHTEST#strlcat_fortified2",
- name: "android.bionic.DEATHTEST#strlcpy_fortified",
- name: "android.bionic.DEATHTEST#strlcpy_fortified2",
- name: "android.bionic.DEATHTEST#strlen_fortified",
- name: "android.bionic.DEATHTEST#strncat2_fortified",
- name: "android.bionic.DEATHTEST#strncat2_fortified2",
- name: "android.bionic.DEATHTEST#strncat3_fortified2",
- name: "android.bionic.DEATHTEST#strncat_fortified",
- name: "android.bionic.DEATHTEST#strncat_fortified2",
- name: "android.bionic.DEATHTEST#strncpy_fortified",
- name: "android.bionic.DEATHTEST#strncpy_fortified2",
- name: "android.bionic.DEATHTEST#strrchr_fortified",
- name: "android.bionic.DEATHTEST#strrchr_fortified2",
- name: "android.bionic.DEATHTEST#umask_fortified",
- name: "android.bionic.DEATHTEST#vsnprintf2_fortified",
- name: "android.bionic.DEATHTEST#vsnprintf2_fortified2",
- name: "android.bionic.DEATHTEST#vsnprintf_fortified",
- name: "android.bionic.DEATHTEST#vsnprintf_fortified2",
- name: "android.bionic.DEATHTEST#vsprintf2_fortified",
- name: "android.bionic.DEATHTEST#vsprintf2_fortified2",
- name: "android.bionic.DEATHTEST#vsprintf_fortified",
- name: "android.bionic.DEATHTEST#vsprintf_fortified2",
- name: "android.bionic.TEST_NAME#memcpy_chk_max_int_size",
- name: "android.bionic.TEST_NAME#strcat",
- name: "android.bionic.TEST_NAME#strcat2",
- name: "android.bionic.TEST_NAME#strcat_chk_max_int_size",
- name: "android.bionic.TEST_NAME#strcpy_chk_max_int_size",
- name: "android.bionic.TEST_NAME#strncat",
- name: "android.bionic.TEST_NAME#strncat2",
- name: "android.bionic.TEST_NAME#strncat3",
- name: "android.bionic.TEST_NAME#strncat4",
- name: "android.bionic.TEST_NAME#strncat5",
- name: "android.bionic.TEST_NAME#strncat6",
- name: "android.bionic.dlfcn#dladdr",
- name: "android.bionic.dlfcn#dladdr_invalid",
- name: "android.bionic.dlfcn#dlerror_concurrent",
- name: "android.bionic.dlfcn#dlopen_bad_flags",
- name: "android.bionic.dlfcn#dlopen_failure",
- name: "android.bionic.dlfcn#dlopen_library_with_only_gnu_hash",
- name: "android.bionic.dlfcn#dlsym_failures",
- name: "android.bionic.dlfcn#dlsym_in_self",
- name: "android.bionic.math#isfinite",
- name: "android.bionic.math#signbit",
- name: "android.bionic.stack_protector#same_guard_per_thread",
- name: "android.bionic.stack_unwinding_DeathTest#unwinding_through_signal_frame",
- bug: 11119006
}
]
diff --git a/tests/tests/bionic/Android.mk b/tests/tests/bionic/Android.mk
index 06b64ea..326fd56 100644
--- a/tests/tests/bionic/Android.mk
+++ b/tests/tests/bionic/Android.mk
@@ -1,26 +1,26 @@
LOCAL_PATH := $(call my-dir)
+test_executable := bionic-unit-tests-cts
+
include $(CLEAR_VARS)
-cts_src_test_path := bionic/tests
+LOCAL_MODULE := $(test_executable)
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE := bionic-unit-tests-cts
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
LOCAL_ADDITION_DEPENDENCIES := \
- $(LOCAL_PATH)/Android.mk \
+ $(LOCAL_PATH)/Android.mk \
LOCAL_SHARED_LIBRARIES += \
- libstlport \
- libdl \
+ libstlport \
+ libdl \
LOCAL_WHOLE_STATIC_LIBRARIES += \
- libBionicTests \
+ libBionicTests \
LOCAL_STATIC_LIBRARIES += \
- libgtest \
- libgtest_main \
+ libgtest \
+ libgtest_main \
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
LOCAL_CTS_TEST_PACKAGE := android.bionic
-
include $(BUILD_CTS_EXECUTABLE)
diff --git a/tests/tests/bionic/bionic-unit-tests-cts_list.txt b/tests/tests/bionic/bionic-unit-tests-cts_list.txt
new file mode 100644
index 0000000..55daff5
--- /dev/null
+++ b/tests/tests/bionic/bionic-unit-tests-cts_list.txt
@@ -0,0 +1,576 @@
+Fortify1_Gcc_DeathTest.
+ strcpy_fortified
+ strcpy2_fortified
+ strcpy3_fortified
+ strcpy4_fortified
+ strlen_fortified
+ strchr_fortified
+ strrchr_fortified
+ strlcpy_fortified
+ strlcat_fortified
+ sprintf_fortified
+ sprintf2_fortified
+ vsprintf_fortified
+ vsprintf2_fortified
+ vsnprintf_fortified
+ vsnprintf2_fortified
+ strncat_fortified
+ strncat2_fortified
+ strcat_fortified
+ memmove_fortified
+ memcpy_fortified
+ strncpy_fortified
+ snprintf_fortified
+ bzero_fortified
+ umask_fortified
+Fortify2_Gcc_DeathTest.
+ strncpy_fortified2
+ sprintf_fortified2
+ sprintf2_fortified2
+ vsprintf_fortified2
+ vsprintf2_fortified2
+ vsnprintf_fortified2
+ vsnprintf2_fortified2
+ strcpy_fortified2
+ strcpy2_fortified2
+ strcpy3_fortified2
+ strchr_fortified2
+ strrchr_fortified2
+ strlcpy_fortified2
+ strlcat_fortified2
+ strncat_fortified2
+ strncat2_fortified2
+ strncat3_fortified2
+ strcat_fortified2
+ strcat2_fortified2
+ snprintf_fortified2
+ bzero_fortified2
+ strcpy_fortified
+ strcpy2_fortified
+ strcpy3_fortified
+ strcpy4_fortified
+ strlen_fortified
+ strchr_fortified
+ strrchr_fortified
+ strlcpy_fortified
+ strlcat_fortified
+ sprintf_fortified
+ sprintf2_fortified
+ vsprintf_fortified
+ vsprintf2_fortified
+ vsnprintf_fortified
+ vsnprintf2_fortified
+ strncat_fortified
+ strncat2_fortified
+ strcat_fortified
+ memmove_fortified
+ memcpy_fortified
+ strncpy_fortified
+ snprintf_fortified
+ bzero_fortified
+ umask_fortified
+Fortify1_Clang_DeathTest.
+ strcpy_fortified
+ strcpy2_fortified
+ strcpy3_fortified
+ strcpy4_fortified
+ strlen_fortified
+ strchr_fortified
+ strrchr_fortified
+ strlcpy_fortified
+ strlcat_fortified
+ sprintf_fortified
+ sprintf2_fortified
+ vsprintf_fortified
+ vsprintf2_fortified
+ vsnprintf_fortified
+ vsnprintf2_fortified
+ strncat_fortified
+ strncat2_fortified
+ strcat_fortified
+ memmove_fortified
+ memcpy_fortified
+ strncpy_fortified
+ snprintf_fortified
+ bzero_fortified
+ umask_fortified
+Fortify2_Clang_DeathTest.
+ strncat3_fortified2
+ strcat2_fortified2
+ snprintf_fortified2
+ bzero_fortified2
+ strcpy_fortified
+ strcpy2_fortified
+ strcpy3_fortified
+ strcpy4_fortified
+ strlen_fortified
+ strchr_fortified
+ strrchr_fortified
+ strlcpy_fortified
+ strlcat_fortified
+ sprintf_fortified
+ sprintf2_fortified
+ vsprintf_fortified
+ vsprintf2_fortified
+ vsnprintf_fortified
+ vsnprintf2_fortified
+ strncat_fortified
+ strncat2_fortified
+ strcat_fortified
+ memmove_fortified
+ memcpy_fortified
+ strncpy_fortified
+ snprintf_fortified
+ bzero_fortified
+ umask_fortified
+pthread_DeathTest.
+ pthread_bug_37410
+stack_protector_DeathTest.
+ modify_stack_protector
+properties_DeathTest.
+ read_only
+Fortify1_Gcc.
+ strncat
+ strncat2
+ strncat3
+ strncat4
+ strncat5
+ strncat6
+ strcat
+ strcat2
+ strcat_chk_max_int_size
+ strcpy_chk_max_int_size
+ memcpy_chk_max_int_size
+Fortify2_Gcc.
+ strncat
+ strncat2
+ strncat3
+ strncat4
+ strncat5
+ strncat6
+ strcat
+ strcat2
+ strcat_chk_max_int_size
+ strcpy_chk_max_int_size
+ memcpy_chk_max_int_size
+Fortify1_Clang.
+ strncat
+ strncat2
+ strncat3
+ strncat4
+ strncat5
+ strncat6
+ strcat
+ strcat2
+ strcat_chk_max_int_size
+ strcpy_chk_max_int_size
+ memcpy_chk_max_int_size
+Fortify2_Clang.
+ strncat
+ strncat2
+ strncat3
+ strncat4
+ strncat5
+ strncat6
+ strcat
+ strcat2
+ strcat_chk_max_int_size
+ strcpy_chk_max_int_size
+ memcpy_chk_max_int_size
+dirent.
+ scandir
+ fdopendir_invalid
+ fdopendir
+ opendir_invalid
+ opendir
+ closedir_invalid
+ closedir
+ readdir
+ readdir_r
+ rewinddir
+eventfd.
+ smoke
+fenv.
+ fesetround_fegetround_FE_TONEAREST
+ fesetround_fegetround_FE_TOWARDZERO
+ fesetround_fegetround_FE_UPWARD
+ fesetround_fegetround_FE_DOWNWARD
+ feclearexcept_fetestexcept
+ FE_DFL_ENV_macro
+getauxval.
+ expected_values
+ unexpected_values
+getcwd.
+ auto_full
+ auto_reasonable
+ auto_too_small
+ auto_too_large
+ manual_too_small
+ manual_zero
+ manual_path_max
+inttypes.
+ misc
+libc_logging.
+ smoke
+ d_INT_MAX
+ d_INT_MIN
+ ld_LONG_MAX
+ ld_LONG_MIN
+ lld_LLONG_MAX
+ lld_LLONG_MIN
+libgen.
+ basename
+ dirname
+ basename_r
+ dirname_r
+malloc.
+ malloc_std
+ calloc_std
+ memalign_multiple
+ memalign_realloc
+ malloc_realloc_larger
+ malloc_realloc_smaller
+ malloc_multiple_realloc
+ calloc_realloc_larger
+ calloc_realloc_smaller
+ calloc_multiple_realloc
+math.
+ fpclassify
+ isinf
+ isnan
+ isnormal
+ __fpclassifyd
+ __fpclassifyf
+ __fpclassifyl
+ finitef
+ __isfinite
+ __isfinitef
+ __isfinitel
+ finite
+ __isinff
+ __isinfl
+ __isnanf
+ __isnanl
+ isnanf
+ __isnormal
+ __isnormalf
+ __isnormall
+ __signbit
+ __signbitf
+ __signbitl
+ acos
+ acosf
+ acosl
+ asin
+ asinf
+ asinl
+ atan
+ atanf
+ atanl
+ atan2
+ atan2f
+ atan2l
+ cos
+ cosf
+ cosl
+ sin
+ sinf
+ sinl
+ tan
+ tanf
+ tanl
+ acosh
+ acoshf
+ acoshl
+ asinh
+ asinhf
+ asinhl
+ atanh
+ atanhf
+ atanhl
+ cosh
+ coshf
+ coshl
+ sinh
+ sinhf
+ sinhl
+ tanh
+ tanhf
+ tanhl
+ log
+ logf
+ logl
+ log2
+ log2f
+ log2l
+ log10
+ log10f
+ log10l
+ cbrt
+ cbrtf
+ cbrtl
+ sqrt
+ sqrtf
+ sqrtl
+ exp
+ expf
+ expl
+ exp2
+ exp2f
+ exp2l
+ expm1
+ expm1f
+ expm1l
+ pow
+ powf
+ powl
+ ceil
+ ceilf
+ ceill
+ floor
+ floorf
+ floorl
+ fabs
+ fabsf
+ fabsl
+ ldexp
+ ldexpf
+ ldexpl
+ fmod
+ fmodf
+ fmodl
+ remainder
+ remainderf
+ remainderl
+ drem
+ dremf
+ fmax
+ fmaxf
+ fmaxl
+ fmin
+ fminf
+ fminl
+ fma
+ fmaf
+ fmal
+ hypot
+ hypotf
+ hypotl
+ erf
+ erff
+ erfl
+ erfc
+ erfcf
+ erfcl
+ lrint
+ rint
+ nearbyint
+ lround
+ llround
+ ilogb
+ ilogbf
+ ilogbl
+ logb
+ logbf
+ logbl
+ log1p
+ log1pf
+ log1pl
+ fdim
+ fdimf
+ fdiml
+ round
+ roundf
+ roundl
+ trunc
+ truncf
+ truncl
+ nextafter
+ nextafterf
+ nextafterl
+ copysign
+ copysignf
+ copysignl
+ significand
+ significandf
+ significandl
+ scalb
+ scalbf
+ scalbln
+ scalblnf
+ scalblnl
+ scalbn
+ scalbnf
+ scalbnl
+ gamma
+ gammaf
+ gamma_r
+ gammaf_r
+ lgamma
+ lgammaf
+ lgammal
+ lgamma_r
+ lgammaf_r
+ tgamma
+ tgammaf
+ tgammal
+ j0
+ j0f
+ j1
+ j1f
+ jn
+ jnf
+ y0
+ y0f
+ y1
+ y1f
+ yn
+ ynf
+ frexp
+ frexpf
+ frexpl
+ modf
+ modff
+ modfl
+ remquo
+ remquof
+ remquol
+ frexpf_public_bug_6697
+netdb.
+ getaddrinfo_NULL_hints
+ getnameinfo_salen
+pthread.
+ pthread_key_create
+ pthread_key_create_lots
+ pthread_create
+ pthread_create_EAGAIN
+ pthread_no_join_after_detach
+ pthread_no_op_detach_after_join
+ pthread_join_self
+ pthread_sigmask
+ __pthread_clone
+ pthread_setname_np__too_long
+ pthread_setname_np__self
+ pthread_setname_np__other
+ pthread_setname_np__no_such_thread
+ pthread_kill__0
+ pthread_kill__invalid_signal
+ pthread_kill__in_signal_handler
+ pthread_detach__no_such_thread
+ pthread_getcpuclockid__clock_gettime
+ pthread_getcpuclockid__no_such_thread
+ pthread_getschedparam__no_such_thread
+ pthread_setschedparam__no_such_thread
+ pthread_join__no_such_thread
+ pthread_kill__no_such_thread
+ pthread_join__multijoin
+ pthread_attr_setguardsize
+ pthread_attr_setstacksize
+regex.
+ smoke
+signal.
+ sigismember_invalid
+ sigaddset_invalid
+ sigdelset_invalid
+ sigemptyset_invalid
+ sigfillset_invalid
+ raise_invalid
+ raise_in_signal_handler
+ sigwait
+stack_protector.
+ global_guard
+statvfs.
+ statvfs
+ fstatvfs
+stdio.
+ tmpfile_fileno_fprintf_rewind_fgets
+ getdelim
+ getdelim_invalid
+ getline
+ getline_invalid
+ printf_ssize_t
+ popen
+ getc
+ putc
+stdlib.
+ drand48
+ lrand48_random_rand
+ mrand48
+ posix_memalign
+ realpath__NULL_filename
+ realpath__empty_filename
+ realpath__ENOENT
+ realpath
+ qsort
+string.
+ strerror
+ strerror_concurrent
+ strerror_r
+ strsignal
+ strsignal_concurrent
+ strcat
+ strcpy2
+ strcpy3
+ strcpy4
+ strcat2
+ strcat3
+ strncat2
+ strncat3
+ strncat4
+ strncat5
+ strchr_with_0
+ strchr
+ strcmp
+ strcpy
+ strlcat
+ strlcpy
+ strncat
+ strncmp
+ strncpy
+ strrchr
+ memchr
+ memrchr
+ memcmp
+ __memcmp16
+ wmemcmp
+ memcpy
+ memset
+ memmove
+ bcopy
+ bzero
+strings.
+ ffs
+getpwnam.
+ system_id_root
+ system_id_system
+ app_id_radio
+ app_id_nobody
+ app_id_all_a0
+ app_id_u1_a40000
+ app_id_u0_a0
+ app_id_u0_a1234
+ app_id_u0_a9999
+ app_id_u1_root
+ app_id_u1_radio
+ app_id_u1_a0
+ app_id_u1_i0
+sys_stat.
+ futimens
+ futimens_EBADF
+properties.
+ add
+ update
+ fill
+ foreach
+ find_nth
+ fill_hierarchical
+ errors
+ serial
+ wait
+time.
+ mktime_tz
+ gmtime
+ mktime_10310929
+unistd.
+ sysconf_SC_MONOTONIC_CLOCK
+ sbrk
diff --git a/tests/tests/nativemedia/sl/Android.mk b/tests/tests/nativemedia/sl/Android.mk
index 90d8863..49ccb10 100644
--- a/tests/tests/nativemedia/sl/Android.mk
+++ b/tests/tests/nativemedia/sl/Android.mk
@@ -1,13 +1,16 @@
# Build the unit tests.
LOCAL_PATH:= $(call my-dir)
+
+test_executable := NativeMediaTest_SL
+
include $(CLEAR_VARS)
-cts_src_test_path := $(LOCAL_PATH)
-
+LOCAL_MODULE := $(test_executable)
LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
-LOCAL_C_INCLUDES:= \
+LOCAL_C_INCLUDES := \
bionic \
bionic/libstdc++/include \
external/gtest/include \
@@ -15,22 +18,18 @@
external/stlport/stlport \
$(call include-path-for, wilhelm-ut)
-LOCAL_SRC_FILES:= \
+LOCAL_SRC_FILES := \
src/SLObjectCreationTest.cpp
LOCAL_SHARED_LIBRARIES := \
- libutils \
- liblog \
- libOpenSLES \
- libstlport
+ libutils \
+ liblog \
+ libOpenSLES \
+ libstlport
LOCAL_STATIC_LIBRARIES := \
libOpenSLESUT \
libgtest
-LOCAL_MODULE:= NativeMediaTest_SL
-
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
-
LOCAL_CTS_TEST_PACKAGE := android.nativemedia.sl
include $(BUILD_CTS_EXECUTABLE)
diff --git a/tests/tests/nativemedia/sl/NativeMediaTest_SL_list.txt b/tests/tests/nativemedia/sl/NativeMediaTest_SL_list.txt
new file mode 100644
index 0000000..c5d17a3
--- /dev/null
+++ b/tests/tests/nativemedia/sl/NativeMediaTest_SL_list.txt
@@ -0,0 +1,11 @@
+SLObjectCreationTest.
+ testEngineCreation
+ testOutputMixCreation
+ testAudioPlayerFromUriCreation
+ testAudioPlayerFromFdCreation
+ testAudioPlayerFromPcmBqCreation
+ testAudioPlayerFromTsAbqCreation
+ testAudioPlayerFromUriToPcmBqCreation
+ testAudioPlayerFromFdToPcmBqCreation
+ testAudioPlayerFromAdtsAbqToPcmBqCreation
+ testAudioRecorderCreation
diff --git a/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp b/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp
index 804263e..d0b3be0 100644
--- a/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp
+++ b/tests/tests/nativemedia/sl/src/SLObjectCreationTest.cpp
@@ -35,12 +35,16 @@
#define LOG_NDEBUG 0
#define LOG_TAG "SLObjectCreationTest"
+#include <gtest/gtest.h>
#include <utils/Log.h>
+
+#if !defined(BUILD_ONLY)
#include "SLES/OpenSLES.h"
#include "SLES/OpenSLES_Android.h"
#include "OpenSLESUT.h"
-#include <gtest/gtest.h>
+#endif
+#if !defined(BUILD_ONLY)
//-----------------------------------------------------------------
/* Checks for error and displays the error code if any */
bool IsOk(SLresult res) {
@@ -305,6 +309,20 @@
(*audioRecorderObj)->Destroy(audioRecorderObj);
}
};
+#else
+class SLObjectCreationTest : public ::testing::Test {
+protected:
+ void OutputMixCreation() { }
+ void AudioPlayerFromUriCreation() { }
+ void AudioPlayerFromFdCreation() { }
+ void AudioPlayerFromPcmBqCreation() { }
+ void AudioPlayerFromTsAbqCreation() { }
+ void AudioPlayerFromUriToPcmBqCreation() { }
+ void AudioPlayerFromFdToPcmBqCreation() { }
+ void AudioPlayerFromAdtsAbqToPcmBqCreation() { }
+ void AudioRecorderCreation(bool) { }
+};
+#endif
//-------------------------------------------------------------------------------------------------
TEST_F(SLObjectCreationTest, testEngineCreation) {
diff --git a/tests/tests/nativemedia/xa/Android.mk b/tests/tests/nativemedia/xa/Android.mk
index 9ff2110..f2c0ca0 100644
--- a/tests/tests/nativemedia/xa/Android.mk
+++ b/tests/tests/nativemedia/xa/Android.mk
@@ -1,13 +1,16 @@
# Build the unit tests.
LOCAL_PATH:= $(call my-dir)
+
+test_executable := NativeMediaTest_XA
+
include $(CLEAR_VARS)
-cts_src_test_path := $(LOCAL_PATH)
-
+LOCAL_MODULE:= $(test_executable)
LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
-LOCAL_C_INCLUDES:= \
+LOCAL_C_INCLUDES := \
bionic \
bionic/libstdc++/include \
external/gtest/include \
@@ -15,7 +18,7 @@
external/stlport/stlport \
$(call include-path-for, wilhelm-ut)
-LOCAL_SRC_FILES:= \
+LOCAL_SRC_FILES := \
src/XAObjectCreationTest.cpp
LOCAL_SHARED_LIBRARIES := \
@@ -27,9 +30,5 @@
LOCAL_STATIC_LIBRARIES := \
libgtest
-LOCAL_MODULE:= NativeMediaTest_XA
-
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
-
LOCAL_CTS_TEST_PACKAGE := android.nativemedia.xa
include $(BUILD_CTS_EXECUTABLE)
diff --git a/tests/tests/nativemedia/xa/NativeMediaTest_XA_list.txt b/tests/tests/nativemedia/xa/NativeMediaTest_XA_list.txt
new file mode 100644
index 0000000..af8bfad
--- /dev/null
+++ b/tests/tests/nativemedia/xa/NativeMediaTest_XA_list.txt
@@ -0,0 +1,3 @@
+XAObjectCreationTest.
+ testEngineCreation
+ testOutputMixCreation
diff --git a/tests/tests/nativemedia/xa/src/XAObjectCreationTest.cpp b/tests/tests/nativemedia/xa/src/XAObjectCreationTest.cpp
index 3ff84c2..d905451 100644
--- a/tests/tests/nativemedia/xa/src/XAObjectCreationTest.cpp
+++ b/tests/tests/nativemedia/xa/src/XAObjectCreationTest.cpp
@@ -24,12 +24,15 @@
#define LOG_NDEBUG 0
#define LOG_TAG "XAObjectCreationTest"
+#include <gtest/gtest.h>
#include <utils/Log.h>
+
+#if !defined(BUILD_ONLY)
#include "OMXAL/OpenMAXAL.h"
#include "OMXAL/OpenMAXAL_Android.h"
-//#include <android/native_window_jni.h>
-#include <gtest/gtest.h>
+#endif
+#if !defined(BUILD_ONLY)
//-----------------------------------------------------------------
/* Checks for error and displays the error code if any */
bool IsOk(XAresult res) {
@@ -115,6 +118,12 @@
}
};
+#else
+class XAObjectCreationTest : public ::testing::Test {
+protected:
+ void OutputMixCreation() { }
+};
+#endif
//-------------------------------------------------------------------------------------------------
TEST_F(XAObjectCreationTest, testEngineCreation) {
diff --git a/tools/cts-native-scanner/src/com/android/cts/nativescanner/CtsNativeScanner.java b/tools/cts-native-scanner/src/com/android/cts/nativescanner/CtsNativeScanner.java
index a7599b0..2414138 100644
--- a/tools/cts-native-scanner/src/com/android/cts/nativescanner/CtsNativeScanner.java
+++ b/tools/cts-native-scanner/src/com/android/cts/nativescanner/CtsNativeScanner.java
@@ -15,7 +15,8 @@
*/
package com.android.cts.nativescanner;
-import java.io.File;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
@@ -27,18 +28,18 @@
private static void usage(String[] args) {
System.err.println("Arguments: " + Arrays.asList(args));
- System.err.println("Usage: cts-native-scanner -s SOURCE_DIR -t TEST_SUITE");
+ System.err.println("Usage: cts-native-scanner -t TEST_SUITE");
+ System.err.println(" This code reads from stdin the list of tests.");
+ System.err.println(" The format expected:");
+ System.err.println(" TEST_CASE_NAME.");
+ System.err.println(" TEST_NAME");
System.exit(1);
}
public static void main(String[] args) throws Exception {
- File sourceDir = null;
String testSuite = null;
-
for (int i = 0; i < args.length; i++) {
- if ("-s".equals(args[i])) {
- sourceDir = new File(getArg(args, ++i, "Missing value for source directory"));
- } else if ("-t".equals(args[i])) {
+ if ("-t".equals(args[i])) {
testSuite = getArg(args, ++i, "Missing value for test suite");
} else {
System.err.println("Unsupported flag: " + args[i]);
@@ -46,19 +47,14 @@
}
}
- if (sourceDir == null) {
- System.out.println("Source directory is required");
- usage(args);
- }
-
if (testSuite == null) {
System.out.println("Test suite is required");
usage(args);
}
- TestScanner scanner = new TestScanner(sourceDir, testSuite);
- List<String> testNames = scanner.getTestNames();
- for (String name : testNames) {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+ TestScanner scanner = new TestScanner(reader, testSuite);
+ for (String name : scanner.getTestNames()) {
System.out.println(name);
}
}
diff --git a/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java b/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java
index 370b509..6fcb353 100644
--- a/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java
+++ b/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java
@@ -16,100 +16,60 @@
package com.android.cts.nativescanner;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FilenameFilter;
+import java.io.BufferedReader;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
-import java.util.Scanner;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
/**
- * Scanner of C++ gTest source files.
+ * Read from the BufferedReader a list of test case names and test cases.
*
- * It looks for test declarations and outputs a file following this format:
- * suite:TestSuite
- * case:TestCase1
- * test:Test1
- * test:Test2
- * suite:TestSuite
- * case:TestCase2
- * test:Test1
- * test:Test2
+ * The expected format of the incoming test list:
+ * TEST_CASE_NAME.
+ * TEST_NAME1
+ * TEST_NAME2
*
+ * The output:
+ * suite:TestSuite
+ * case:TEST_CASE_NAME
+ * test:TEST_NAME1
+ * test:TEST_NAME2
*/
class TestScanner {
- /** Directory to recursively scan for gTest test declarations. */
- private final File mSourceDir;
-
private final String mTestSuite;
- TestScanner(File sourceDir, String testSuite) {
- mSourceDir = sourceDir;
+ private final BufferedReader mReader;
+
+ TestScanner(BufferedReader reader, String testSuite) {
mTestSuite = testSuite;
+ mReader = reader;
}
public List<String> getTestNames() throws IOException {
List<String> testNames = new ArrayList<String>();
- scanDir(mSourceDir, testNames);
- return testNames;
- }
- private void scanDir(File dir, List<String> testNames) throws FileNotFoundException {
- // Find both C++ files to find tests and directories to look for more tests!
- File[] files = dir.listFiles(new FilenameFilter() {
- @Override
- public boolean accept(File dir, String filename) {
- return filename.endsWith(".cpp") || filename.endsWith(".cc")
- || new File(dir, filename).isDirectory();
- }
- });
-
- for (int i = 0; i < files.length; i++) {
- File file = files[i];
- if (file.isDirectory()) {
- scanDir(file, testNames);
+ String testCaseName = null;
+ String line;
+ while ((line = mReader.readLine()) != null) {
+ if (line.length() > 0) {
+ if (line.charAt(0) == ' ') {
+ if (testCaseName != null) {
+ testNames.add("test:" + line.trim());
+ } else {
+ throw new IOException("TEST_CASE_NAME not defined before first test.");
+ }
} else {
- scanFile(new Scanner(file), testNames);
+ testCaseName = line.trim();
+ if (testCaseName.endsWith(".")) {
+ testCaseName = testCaseName.substring(0, testCaseName.length()-1);
+ }
+ testNames.add("suite:" + mTestSuite);
+ testNames.add("case:" + testCaseName);
}
+ }
}
- }
-
- // We want to find lines like TEST_F(SLObjectCreationTest, testAudioPlayerFromFdCreation)
- // or TEST(stdio, printf) { ...
- // and extract the "SLObjectCreationTest" as group #1,
- // "testAudioPlayerFromFdCreation" as group #2
- // TODO: It would be better to concatenate the two parts.
- private static final Pattern METHOD_REGEX =
- Pattern.compile("\\s*TEST(?:_F)?\\((\\w+),\\s*(\\w+)\\).*");
-
- public void scanFile(Scanner scanner, List<String> testNames) {
- try {
- String lastCase = "";
- while (scanner.hasNextLine()) {
- String line = scanner.nextLine();
-
- Matcher matcher = METHOD_REGEX.matcher(line);
-
- if (!matcher.matches()) {
- continue;
- }
-
- if (!lastCase.equals(matcher.group(1))) {
- testNames.add("suite:" + mTestSuite);
- testNames.add("case:" + matcher.group(1));
- lastCase = matcher.group(1);
- }
-
- testNames.add("test:" + matcher.group(2));
- }
- } finally {
- if (scanner != null) {
- scanner.close();
- }
- }
+ return testNames;
}
}
diff --git a/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/TestScannerTest.java b/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/TestScannerTest.java
index 18732fd..b00c7dc 100644
--- a/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/TestScannerTest.java
+++ b/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/TestScannerTest.java
@@ -19,12 +19,10 @@
import junit.framework.TestCase;
-import java.io.File;
+import java.io.BufferedReader;
+import java.io.IOException;
import java.io.StringReader;
-import java.lang.StringBuilder;
-import java.util.Scanner;
import java.util.List;
-import java.util.ArrayList;
import java.util.Iterator;
/**
@@ -32,31 +30,49 @@
*/
public class TestScannerTest extends TestCase {
- public void testScanFile() {
- TestScanner testScanner = new TestScanner(new File("unused"), "TestSuite");
+ public void testSingleTestNamesCase() throws Exception {
+ StringReader singleTestString = new StringReader("FakeTestCase.\n FakeTestName\n");
+ BufferedReader reader = new BufferedReader(singleTestString);
- String newLine = System.getProperty("line.separator");
- StringBuilder sb = new StringBuilder();
- sb.append("foobar" + newLine); // ignored
- sb.append("TEST_F(TestCase1, TestName1)" + newLine); // valid
- sb.append("TEST_F(TestCase1, TestName2)" + newLine); // valid
- sb.append("TEST_F(TestCase2, TestName1) foo" + newLine); // valid
- sb.append("TEST_F(TestCase2, TestName1 foo)" + newLine); // ignored
- sb.append("foo TEST_F(TestCase2, TestName1)" + newLine); // ignored
+ TestScanner testScanner = new TestScanner(reader, "TestSuite");
- List<String> names = new ArrayList<String>();
- Scanner scanner = new Scanner(new StringReader(sb.toString()));
- testScanner.scanFile(scanner, names);
+ List<String> names = testScanner.getTestNames();
Iterator it = names.iterator();
-
assertEquals("suite:TestSuite", it.next());
- assertEquals("case:TestCase1", it.next());
- assertEquals("test:TestName1", it.next());
- assertEquals("test:TestName2", it.next());
- assertEquals("suite:TestSuite", it.next());
- assertEquals("case:TestCase2", it.next());
- assertEquals("test:TestName1", it.next());
+ assertEquals("case:FakeTestCase", it.next());
+ assertEquals("test:FakeTestName", it.next());
assertFalse(it.hasNext());
- scanner.close();
+ }
+
+ public void testMultipleTestNamesCase() throws Exception {
+ StringReader singleTestString = new StringReader(
+ "Case1.\n Test1\n Test2\nCase2.\n Test3\n Test4\n");
+ BufferedReader reader = new BufferedReader(singleTestString);
+
+ TestScanner testScanner = new TestScanner(reader, "TestSuite");
+
+ List<String> names = testScanner.getTestNames();
+ Iterator it = names.iterator();
+ assertEquals("suite:TestSuite", it.next());
+ assertEquals("case:Case1", it.next());
+ assertEquals("test:Test1", it.next());
+ assertEquals("test:Test2", it.next());
+ assertEquals("case:Case2", it.next());
+ assertEquals("test:Test3", it.next());
+ assertEquals("test:Test4", it.next());
+ assertFalse(it.hasNext());
+ }
+
+ public void testMissingTestCaseNameCase() {
+ StringReader singleTestString = new StringReader(" Test1\n");
+ BufferedReader reader = new BufferedReader(singleTestString);
+
+ TestScanner testScanner = new TestScanner(reader, "TestSuite");
+
+ try {
+ List<String> names = testScanner.getTestNames();
+ fail();
+ } catch (IOException expected) {
+ }
}
}