# First include the GoogleTest library module definitions.
include $(LOCAL_PATH)/distrib/googletest/Android.mk

EMULATOR_UNITTESTS_SOURCES := \
  android/avd/util_unittest.cpp \
  android/utils/bufprint_unittest.cpp \
  android/utils/eintr_wrapper_unittest.cpp \
  android/utils/file_data_unittest.cpp \
  android/utils/host_bitness_unittest.cpp \
  android/utils/property_file_unittest.cpp \
  android/utils/win32_cmdline_quote_unittest.cpp \
  android/base/containers/PodVector_unittest.cpp \
  android/base/containers/StringVector_unittest.cpp \
  android/base/EintrWrapper_unittest.cpp \
  android/base/files/PathUtils_unittest.cpp \
  android/base/files/ScopedFd_unittest.cpp \
  android/base/files/ScopedStdioFile_unittest.cpp \
  android/base/Log_unittest.cpp \
  android/base/memory/MallocUsableSize_unittest.cpp \
  android/base/memory/ScopedPtr_unittest.cpp \
  android/base/String_unittest.cpp \
  android/base/StringFormat_unittest.cpp \
  android/base/StringView_unittest.cpp \
  android/emulation/CpuAccelerator_unittest.cpp \
  android/filesystems/ext4_utils_unittest.cpp \
  android/filesystems/fstab_parser_unittest.cpp \
  android/filesystems/partition_types_unittest.cpp \
  android/filesystems/ramdisk_extractor_unittest.cpp \
  android/filesystems/testing/TestSupport.cpp \
  android/kernel/kernel_utils_unittest.cpp \

ifeq (windows,$(HOST_OS))
EMULATOR_UNITTESTS_SOURCES += \
  android/base/files/ScopedHandle_unittest.cpp \

endif

$(call start-emulator-program, emulator_unittests)
LOCAL_C_INCLUDES += $(EMULATOR_GTEST_INCLUDES)
LOCAL_LDLIBS += $(EMULATOR_GTEST_LDLIBS)
LOCAL_SRC_FILES := $(EMULATOR_UNITTESTS_SOURCES)
LOCAL_CFLAGS += -O0
LOCAL_STATIC_LIBRARIES += \
    emulator-common \
    emulator-libext4_utils \
    emulator-libsparse \
    emulator-libselinux \
    emulator-zlib \
    emulator-libgtest
$(call end-emulator-program)


$(call start-emulator64-program, emulator64_unittests)
LOCAL_C_INCLUDES += $(EMULATOR_GTEST_INCLUDES)
LOCAL_LDLIBS += $(EMULATOR_GTEST_LDLIBS)
LOCAL_SRC_FILES := $(EMULATOR_UNITTESTS_SOURCES)
LOCAL_CFLAGS += -O0
LOCAL_STATIC_LIBRARIES += \
    emulator64-common \
    emulator64-libext4_utils \
    emulator64-libsparse \
    emulator64-libselinux \
    emulator64-zlib \
    emulator64-libgtest
$(call end-emulator-program)
