Native testing for OpenCV Manager enabled
authorAlexander Smorkalov <alexander.smorkalov@itseez.com>
Fri, 18 Jan 2013 14:33:04 +0000 (18:33 +0400)
committerAlexander Smorkalov <alexander.smorkalov@itseez.com>
Mon, 11 Feb 2013 11:03:52 +0000 (15:03 +0400)
All tests added to CMake;
All tests ported on 4 digit version support;
Some test fixes and bug fixes were done.

android/scripts/cmake_android_service.sh
android/service/engine/CMakeLists.txt
android/service/engine/jni/Tests/HardwareDetectionTest.cpp
android/service/engine/jni/Tests/OpenCVEngineTest.cpp
android/service/engine/jni/Tests/PackageInfoTest.cpp
android/service/engine/jni/Tests/PackageManagmentTest.cpp

index e0d1222cd0d8994ceb8a15ea0cab98fcb15a4f23..a5a3d50adeaf976408fec565077c5ea144b05fe3 100755 (executable)
@@ -6,3 +6,4 @@ cd build_service
 
 cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME="arm-linux-androideabi-4.4.3" -DANDROID_STL=stlport_static -DANDROID_STL_FORCE_FEATURES=OFF -DBUILD_ANDROID_SERVICE=ON -DANDROID_SOURCE_TREE=~/Projects/AndroidSource/ServiceStub/ $@ ../..
 
+#-DANDROID_TOOLCHAIN_NAME="arm-linux-androideabi-4.4.3"
index 14066831a614bde453628ad964ec9dbf6c071c2c..9ed6ee5cf51bfef0653979fc5ec6be5ec36ce7b4 100644 (file)
@@ -62,3 +62,14 @@ set_target_properties(${engine}_jni PROPERTIES
 
 get_target_property(engine_lib_location ${engine}_jni LOCATION)
 add_custom_command(TARGET ${engine}_jni POST_BUILD COMMAND ${CMAKE_STRIP} --strip-unneeded "${engine_lib_location}")
+
+# native tests
+add_definitions(-DGTEST_HAS_CLONE=0 -DGTEST_OS_LINUX_ANDROID=1 -DGTEST_HAS_TR1_TUPLE=0)
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-allow-shlib-undefined")
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/jni/Tests)
+file(GLOB engine_test_files "jni/Tests/*.cpp")
+
+add_executable(opencv_engine_test ${engine_test_files} jni/Tests/gtest/gtest-all.cpp)
+target_link_libraries(opencv_engine_test z binder log utils android_runtime ${engine} ${engine}_jni)
+
index 5318733d5292756319513f95be53b3fbd3ea52b2..e4c1284f398f2427269f041672fe226f4b0493a5 100644 (file)
@@ -111,7 +111,6 @@ TEST(Split, SplitMultiElementString)
 TEST(CpuCount, CheckNonZero)
 {
     EXPECT_TRUE(GetProcessorCount() != 0);
-    EXPECT_TRUE(a.find("") == a.end());
 }
 
 TEST(GetCpuInfo, GetCpuInfo)
@@ -140,13 +139,13 @@ TEST(CpuID, CheckSSE2)
     EXPECT_TRUE(cpu_id & FEATURES_HAS_SSE2);
 }
 #elseif __mips
-    #ifdef __SUPPORT_MIPS
-    TEST(CpuID, CheckMips)
-    {
+#ifdef __SUPPORT_MIPS
+TEST(CpuID, CheckMips)
+{
     int cpu_id = GetCpuID();
     EXPECT_TRUE(cpu_id & ARCH_MIPS);
-    }
-    #endif
+}
+#endif
 #else
 TEST(TegraDetector, Detect)
 {
@@ -175,4 +174,4 @@ TEST(PlatfromDetector, CheckTegra)
 {
     EXPECT_NE(PLATFORM_UNKNOWN, DetectKnownPlatforms());
 }
-#endif
\ No newline at end of file
+#endif
index 91302942ad6d76259147d5ae4d1b48a910fdc8c6..a42277f96d51aa79db5ce4683cb0b79d97adb6fa 100644 (file)
@@ -69,7 +69,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWExistVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("240", PLATFORM_UNKNOWN, ARCH_X86);
+    Starter.PackageManager->InstallVersion(2040000, PLATFORM_UNKNOWN, ARCH_X86);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4"));
     EXPECT_STREQ("/data/data/org.opencv.lib_v24_x86/lib", String8(result).string());
@@ -79,7 +79,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWOldVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("242", PLATFORM_UNKNOWN, ARCH_X86);
+    Starter.PackageManager->InstallVersion(2040200, PLATFORM_UNKNOWN, ARCH_X86);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4.1"));
     EXPECT_STREQ("/data/data/org.opencv.lib_v24_x86/lib", String8(result).string());
@@ -89,7 +89,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWNewVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("241", PLATFORM_UNKNOWN, ARCH_X86);
+    Starter.PackageManager->InstallVersion(2040100, PLATFORM_UNKNOWN, ARCH_X86);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4.2"));
     EXPECT_EQ(0, result.size());
@@ -100,7 +100,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWExistVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("240", PLATFORM_UNKNOWN, ARCH_MIPS);
+    Starter.PackageManager->InstallVersion(2040000, PLATFORM_UNKNOWN, ARCH_MIPS);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4"));
     EXPECT_STREQ("/data/data/org.opencv.lib_v24_mips/lib", String8(result).string());
@@ -110,7 +110,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWOldVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("242", PLATFORM_UNKNOWN, ARCH_MIPS);
+    Starter.PackageManager->InstallVersion(2040200, PLATFORM_UNKNOWN, ARCH_MIPS);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4.1"));
     EXPECT_STREQ("/data/data/org.opencv.lib_v24_mips/lib", String8(result).string());
@@ -120,7 +120,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWNewVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("241", PLATFORM_UNKNOWN, ARCH_MIPS);
+    Starter.PackageManager->InstallVersion(2040100, PLATFORM_UNKNOWN, ARCH_MIPS);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4.2"));
     EXPECT_EQ(0, result.size());
@@ -131,7 +131,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWExistVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("240", PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    Starter.PackageManager->InstallVersion(2040000, PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4"));
 #ifdef __SUPPORT_TEGRA3
@@ -149,7 +149,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWOldVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("242", PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    Starter.PackageManager->InstallVersion(2040200, PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4.1"));
 #ifdef __SUPPORT_TEGRA3
@@ -167,7 +167,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWNewVersion)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("241", PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    Starter.PackageManager->InstallVersion(2040100, PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4.2"));
     EXPECT_EQ(0, result.size());
@@ -177,7 +177,7 @@ TEST(OpenCVEngineTest, GetPathForCompatiblePackage1)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("242", PLATFORM_UNKNOWN, ARCH_ARMv5);
+    Starter.PackageManager->InstallVersion(2040200, PLATFORM_UNKNOWN, ARCH_ARMv5);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4"));
     EXPECT_STREQ("/data/data/org.opencv.lib_v24_armv5/lib", String8(result).string());
@@ -187,7 +187,7 @@ TEST(OpenCVEngineTest, GetPathForCompatiblePackage2)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("242", PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    Starter.PackageManager->InstallVersion(2040200, PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4"));
 #ifdef __SUPPORT_TEGRA3
@@ -225,7 +225,7 @@ TEST(OpenCVEngineTest, GetPathForInCompatiblePackage1)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("242", PLATFORM_UNKNOWN, ARCH_X64);
+    Starter.PackageManager->InstallVersion(2040200, PLATFORM_UNKNOWN, ARCH_X64);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4"));
     EXPECT_EQ(0, result.size());
@@ -235,7 +235,7 @@ TEST(OpenCVEngineTest, GetPathForInCompatiblePackage1)
 {
     sp<IOpenCVEngine> Engine = InitConnect();
     Starter.PackageManager->InstalledPackages.clear();
-    Starter.PackageManager->InstallVersion("242", PLATFORM_UNKNOWN, ARCH_ARMv7);
+    Starter.PackageManager->InstallVersion(2040200, PLATFORM_UNKNOWN, ARCH_ARMv7);
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.4"));
     EXPECT_EQ(0, result.size());
@@ -248,4 +248,4 @@ TEST(OpenCVEngineTest, GetPathForUnExistVersion)
     EXPECT_FALSE(NULL == Engine.get());
     String16 result = Engine->GetLibPathByVersion(String16("2.5"));
     EXPECT_EQ(0, result.size());
-}
\ No newline at end of file
+}
index 2664b55c64d60f05b306a679cf091d5bdeac6b12..2e747c305dabff172c870485838425f2899386b8 100644 (file)
@@ -11,14 +11,14 @@ using namespace std;
 
 TEST(PackageInfo, FullNameArmv7)
 {
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_ARMv7);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7);
     string name = info.GetFullName();
     EXPECT_STREQ("org.opencv.lib_v23_armv7a", name.c_str());
 }
 
 TEST(PackageInfo, FullNameArmv7Neon)
 {
-    PackageInfo info("241", PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    PackageInfo info(2040100, PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON);
     string name = info.GetFullName();
 #ifdef __SUPPORT_ARMEABI_V7A_FEATURES
     EXPECT_STREQ("org.opencv.lib_v24_armv7a_neon", name.c_str());
@@ -29,14 +29,14 @@ TEST(PackageInfo, FullNameArmv7Neon)
 
 TEST(PackageInfo, FullNameArmv7VFPv3)
 {
-    PackageInfo info("233", PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_VFPv3);
+    PackageInfo info(2030300, PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_VFPv3);
     string name = info.GetFullName();
     EXPECT_STREQ("org.opencv.lib_v23_armv7a", name.c_str());
 }
 
 TEST(PackageInfo, FullNameArmv7VFPv3Neon)
 {
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON);
     string name = info.GetFullName();
 #ifdef __SUPPORT_ARMEABI_V7A_FEATURES
     EXPECT_STREQ("org.opencv.lib_v23_armv7a_neon", name.c_str());
@@ -47,21 +47,21 @@ TEST(PackageInfo, FullNameArmv7VFPv3Neon)
 
 TEST(PackageInfo, FullNameArmv5)
 {
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_ARMv5);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_ARMv5);
     string name = info.GetFullName();
     EXPECT_STREQ("org.opencv.lib_v23_armv5", name.c_str());
 }
 
 TEST(PackageInfo, FullNameArmv6)
 {
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_ARMv6);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_ARMv6);
     string name = info.GetFullName();
     EXPECT_STREQ("org.opencv.lib_v23_armv5", name.c_str());
 }
 
 TEST(PackageInfo, FullNameArmv6VFPv3)
 {
-    PackageInfo info("232", PLATFORM_UNKNOWN, ARCH_ARMv6 | FEATURES_HAS_VFPv3);
+    PackageInfo info(2030200, PLATFORM_UNKNOWN, ARCH_ARMv6 | FEATURES_HAS_VFPv3);
     string name = info.GetFullName();
 #ifdef __SUPPORT_ARMEABI_FEATURES
     EXPECT_STREQ("org.opencv.lib_v23_armv5_vfpv3", name.c_str());
@@ -72,7 +72,7 @@ TEST(PackageInfo, FullNameArmv6VFPv3)
 
 TEST(PackageInfo, FullNameTegra3)
 {
-    PackageInfo info("230", PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    PackageInfo info(2030000, PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
     string name = info.GetFullName();
     #ifdef __SUPPORT_TEGRA3
     EXPECT_STREQ("org.opencv.lib_v23_tegra3", name.c_str());
@@ -87,7 +87,7 @@ TEST(PackageInfo, FullNameTegra3)
 
 TEST(PackageInfo, FullNameX86SSE2)
 {
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_X86 | FEATURES_HAS_SSE2);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_X86 | FEATURES_HAS_SSE2);
     string name = info.GetFullName();
 #ifdef __SUPPORT_INTEL_FEATURES
     EXPECT_STREQ("org.opencv.lib_v23_x86_sse2", name.c_str());
@@ -99,7 +99,7 @@ TEST(PackageInfo, FullNameX86SSE2)
 #ifdef __SUPPORT_MIPS
 TEST(PackageInfo, FullNameMips)
 {
-    PackageInfo info("243", PLATFORM_UNKNOWN, ARCH_MIPS);
+    PackageInfo info(2040300, PLATFORM_UNKNOWN, ARCH_MIPS);
     string name = info.GetFullName();
     EXPECT_STREQ("org.opencv.lib_v24_mips", name.c_str());
 }
@@ -108,21 +108,21 @@ TEST(PackageInfo, FullNameMips)
 TEST(PackageInfo, Armv7NeonFromFullName)
 {
     PackageInfo info("org.opencv.lib_v23_armv7a_neon", "/data/data/org.opencv.lib_v23_armv7_neon");
-    EXPECT_EQ("230", info.GetVersion());
+    EXPECT_EQ(2030000, info.GetVersion());
     EXPECT_EQ(ARCH_ARMv7 | FEATURES_HAS_NEON, info.GetCpuID());
 }
 
 TEST(PackageInfo, Armv5FromFullName)
 {
     PackageInfo info("org.opencv.lib_v23_armv5", "/data/data/org.opencv.lib_v23_armv5");
-    EXPECT_EQ("230", info.GetVersion());
+    EXPECT_EQ(2030000, info.GetVersion());
     EXPECT_EQ(ARCH_ARMv5, info.GetCpuID());
 }
 
 TEST(PackageInfo, Armv5VFPv3FromFullName)
 {
     PackageInfo info("org.opencv.lib_v23_armv5_vfpv3", "/data/data/org.opencv.lib_v23_armv5_vfpv3");
-    EXPECT_EQ("230", info.GetVersion());
+    EXPECT_EQ(2030000, info.GetVersion());
     EXPECT_EQ(ARCH_ARMv5 | FEATURES_HAS_VFPv3, info.GetCpuID());
 }
 
@@ -131,20 +131,20 @@ TEST(PackageInfo, X86SSE2FromFullName)
     PackageInfo info("org.opencv.lib_v24_x86_sse2", "/data/data/org.opencv.lib_v24_x86_sse2");
     EXPECT_EQ(PLATFORM_UNKNOWN, info.GetPlatform());
     EXPECT_EQ(ARCH_X86 | FEATURES_HAS_SSE2, info.GetCpuID());
-    EXPECT_EQ("240", info.GetVersion());
+    EXPECT_EQ(2040000, info.GetVersion());
 }
 
 TEST(PackageInfo, Tegra2FromFullName)
 {
     PackageInfo info("org.opencv.lib_v23_tegra2", "/data/data/org.opencv.lib_v23_tegra2");
-    EXPECT_EQ("230", info.GetVersion());
+    EXPECT_EQ(2030000, info.GetVersion());
     EXPECT_EQ(PLATFORM_TEGRA2, info.GetPlatform());
 }
 
 TEST(PackageInfo, Tegra3FromFullName)
 {
     PackageInfo info("org.opencv.lib_v24_tegra3", "/data/data/org.opencv.lib_v24_tegra3");
-    EXPECT_EQ("240", info.GetVersion());
+    EXPECT_EQ(2040000, info.GetVersion());
     EXPECT_EQ(PLATFORM_TEGRA3, info.GetPlatform());
 }
 
@@ -152,14 +152,14 @@ TEST(PackageInfo, Tegra3FromFullName)
 TEST(PackageInfo, MipsFromFullName)
 {
     PackageInfo info("org.opencv.lib_v24_mips", "/data/data/org.opencv.lib_v24_mips");
-    EXPECT_EQ("240", info.GetVersion());
+    EXPECT_EQ(2040000, info.GetVersion());
     EXPECT_EQ(ARCH_MIPS, info.GetCpuID());
 }
 #endif
 
 TEST(PackageInfo, Comparator1)
 {
-    PackageInfo info1("240", PLATFORM_UNKNOWN, ARCH_X86);
+    PackageInfo info1(2040000, PLATFORM_UNKNOWN, ARCH_X86);
     PackageInfo info2("org.opencv.lib_v24_x86", "/data/data/org.opencv.lib_v24_x86");
     EXPECT_STREQ(info1.GetFullName().c_str(), info2.GetFullName().c_str());
     EXPECT_EQ(info1, info2);
@@ -167,7 +167,7 @@ TEST(PackageInfo, Comparator1)
 
 TEST(PackageInfo, Comparator2)
 {
-    PackageInfo info1("240", PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON | FEATURES_HAS_VFPv3);
+    PackageInfo info1(2040000, PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON | FEATURES_HAS_VFPv3);
 #ifdef __SUPPORT_ARMEABI_V7A_FEATURES
     PackageInfo info2("org.opencv.lib_v24_armv7a_neon", "/data/data/org.opencv.lib_v24_armv7a_neon");
 #else
@@ -180,7 +180,7 @@ TEST(PackageInfo, Comparator2)
 #ifdef __SUPPORT_TEGRA3
 TEST(PackageInfo, Comparator3)
 {
-    PackageInfo info1("230", PLATFORM_TEGRA3, 0);
+    PackageInfo info1(2030000, PLATFORM_TEGRA3, 0);
     PackageInfo info2("org.opencv.lib_v23_tegra3", "/data/data/org.opencv.lib_v23_tegra3");
     EXPECT_STREQ(info1.GetFullName().c_str(), info2.GetFullName().c_str());
     EXPECT_EQ(info1, info2);
index 4c280459596fbdc21eea797e66958c10ac2fb7de..f9ccb74844b331cca6a1115926f480536b0584f6 100644 (file)
@@ -5,7 +5,6 @@
 #include "IOpenCVEngine.h"
 #include <utils/String16.h>
 #include <gtest/gtest.h>
-#include <set>
 #include <string>
 #include <vector>
 
@@ -14,52 +13,52 @@ using namespace std;
 TEST(PackageManager, InstalledVersions)
 {
     PackageManagerStub pm;
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_ARMv7);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7);
     pm.InstalledPackages.push_back(info);
-    std::set<string> versions = pm.GetInstalledVersions();
+    std::vector<int> versions = pm.GetInstalledVersions();
     EXPECT_EQ(1, versions.size());
-    EXPECT_EQ("230", *versions.begin());
+    EXPECT_EQ(2030000, *versions.begin());
 }
 
 TEST(PackageManager, CheckVersionInstalled)
 {
     PackageManagerStub pm;
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_ARMv7);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7);
     pm.InstalledPackages.push_back(info);
-    EXPECT_TRUE(pm.CheckVersionInstalled("230", PLATFORM_UNKNOWN, ARCH_ARMv7));
+    EXPECT_TRUE(pm.CheckVersionInstalled(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7));
 }
 
 TEST(PackageManager, InstallVersion)
 {
     PackageManagerStub pm;
-    PackageInfo info("230", PLATFORM_UNKNOWN, ARCH_ARMv5);
+    PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_ARMv5);
     pm.InstalledPackages.push_back(info);
-    EXPECT_TRUE(pm.InstallVersion("240", PLATFORM_UNKNOWN, ARCH_ARMv5));
+    EXPECT_TRUE(pm.InstallVersion(2040000, PLATFORM_UNKNOWN, ARCH_ARMv5));
     EXPECT_EQ(2, pm.InstalledPackages.size());
-    EXPECT_TRUE(pm.CheckVersionInstalled("240", PLATFORM_UNKNOWN, ARCH_ARMv5));
+    EXPECT_TRUE(pm.CheckVersionInstalled(2040000, PLATFORM_UNKNOWN, ARCH_ARMv5));
 }
 
 TEST(PackageManager, GetPackagePathForArmv5)
 {
     PackageManagerStub pm;
-    EXPECT_TRUE(pm.InstallVersion("243", PLATFORM_UNKNOWN, ARCH_ARMv5));
-    string path = pm.GetPackagePathByVersion("243", PLATFORM_UNKNOWN, ARCH_ARMv5);
+    EXPECT_TRUE(pm.InstallVersion(2040300, PLATFORM_UNKNOWN, ARCH_ARMv5));
+    string path = pm.GetPackagePathByVersion(2040300, PLATFORM_UNKNOWN, ARCH_ARMv5);
     EXPECT_STREQ("/data/data/org.opencv.lib_v24_armv5/lib", path.c_str());
 }
 
 TEST(PackageManager, GetPackagePathForArmv7)
 {
     PackageManagerStub pm;
-    EXPECT_TRUE(pm.InstallVersion("230", PLATFORM_UNKNOWN, ARCH_ARMv7));
-    string path = pm.GetPackagePathByVersion("230", PLATFORM_UNKNOWN, ARCH_ARMv7);
+    EXPECT_TRUE(pm.InstallVersion(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7));
+    string path = pm.GetPackagePathByVersion(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7);
     EXPECT_STREQ("/data/data/org.opencv.lib_v23_armv7a/lib", path.c_str());
 }
 
 TEST(PackageManager, GetPackagePathForArmv7Neon)
 {
     PackageManagerStub pm;
-    EXPECT_TRUE(pm.InstallVersion("230", PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON));
-    string path = pm.GetPackagePathByVersion("230", PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    EXPECT_TRUE(pm.InstallVersion(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON));
+    string path = pm.GetPackagePathByVersion(2030000, PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_NEON);
 #ifdef __SUPPORT_ARMEABI_V7A_FEATURES
     EXPECT_STREQ("/data/data/org.opencv.lib_v23_armv7a_neon/lib", path.c_str());
 #else
@@ -70,16 +69,16 @@ TEST(PackageManager, GetPackagePathForArmv7Neon)
 TEST(PackageManager, GetPackagePathForX86)
 {
     PackageManagerStub pm;
-    EXPECT_TRUE(pm.InstallVersion("230", PLATFORM_UNKNOWN, ARCH_X86));
-    string path = pm.GetPackagePathByVersion("230", PLATFORM_UNKNOWN, ARCH_X86);
+    EXPECT_TRUE(pm.InstallVersion(2030000, PLATFORM_UNKNOWN, ARCH_X86));
+    string path = pm.GetPackagePathByVersion(2030000, PLATFORM_UNKNOWN, ARCH_X86);
     EXPECT_STREQ("/data/data/org.opencv.lib_v23_x86/lib", path.c_str());
 }
 
 TEST(PackageManager, GetPackagePathForX86SSE2)
 {
     PackageManagerStub pm;
-    EXPECT_TRUE(pm.InstallVersion("230", PLATFORM_UNKNOWN, ARCH_X86 | FEATURES_HAS_SSE2));
-    string path = pm.GetPackagePathByVersion("230", PLATFORM_UNKNOWN, ARCH_X86 | FEATURES_HAS_SSE2);
+    EXPECT_TRUE(pm.InstallVersion(2030000, PLATFORM_UNKNOWN, ARCH_X86 | FEATURES_HAS_SSE2));
+    string path = pm.GetPackagePathByVersion(2030000, PLATFORM_UNKNOWN, ARCH_X86 | FEATURES_HAS_SSE2);
 #ifdef __SUPPORT_INTEL_FEATURES
     EXPECT_STREQ("/data/data/org.opencv.lib_v23_x86_sse2/lib", path.c_str());
 #else
@@ -90,8 +89,8 @@ TEST(PackageManager, GetPackagePathForX86SSE2)
 TEST(PackageManager, GetPackagePathForTegra3)
 {
     PackageManagerStub pm;
-    EXPECT_TRUE(pm.InstallVersion("230", PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON));
-    string path = pm.GetPackagePathByVersion("230", PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_NEON);
+    EXPECT_TRUE(pm.InstallVersion(2030000, PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON));
+    string path = pm.GetPackagePathByVersion(2030000, PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON);
 #ifdef __SUPPORT_TEGRA3
     EXPECT_STREQ("/data/data/org.opencv.lib_v23_tegra3/lib", path.c_str());
 #else
@@ -107,8 +106,8 @@ TEST(PackageManager, GetPackagePathForTegra3)
 TEST(PackageManager, GetPackagePathForMips)
 {
     PackageManagerStub pm;
-    EXPECT_TRUE(pm.InstallVersion("243", PLATFORM_UNKNOWN, ARCH_MIPS));
-    string path = pm.GetPackagePathByVersion("243", PLATFORM_UNKNOWN, ARCH_MIPS);
+    EXPECT_TRUE(pm.InstallVersion(2040000, PLATFORM_UNKNOWN, ARCH_MIPS));
+    string path = pm.GetPackagePathByVersion(2040000, PLATFORM_UNKNOWN, ARCH_MIPS);
     EXPECT_STREQ("/data/data/org.opencv.lib_v24_mips/lib", path.c_str());
 }
 #endif