ref: a294cad5c8ada3ada88fdc52220352d4c8a3a8e1
parent: a0c9f8c9a06a63e37a74d20c1ff07e19ef979ba6
author: Martin Storsjö <[email protected]>
date: Fri May 30 06:58:19 EDT 2014
Change directory to /sdcard before running the unit tests on android This allows placing the test files in /sdcard/res before running the test. Previously, the current directory was /, and writing data into /res isn't possible on non-rooted phones.
--- a/test/build/android/jni/codec_unittest.cpp
+++ b/test/build/android/jni/codec_unittest.cpp
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <jni.h>
+#include <unistd.h>
#include <android/log.h>
#define LOG_TAG "codec_unittest"
@@ -10,12 +11,13 @@
int CodecUtMain(int argc, char** argv);
extern "C"
JNIEXPORT void JNICALL Java_com_cisco_codec_unittest_MainActivity_DoUnittest
-(JNIEnv* env, jobject thiz,jstring jspath) {
+(JNIEnv* env, jobject thiz, jstring directory, jstring jspath) {
/**************** Add the native codes/API *****************/
char* argv[2];
int argc = 2;
argv[0] = (char*) ("codec_unittest.exe");
argv[1] = (char*) ((*env).GetStringUTFChars (jspath,NULL));
+ chdir((*env).GetStringUTFChars (directory, NULL));
LOGI ("PATH: %s", argv[1]);
LOGI ("Start to run JNI module!+++");
CodecUtMain(argc,argv);
--- a/test/build/android/src/com/cisco/codec/unittest/MainActivity.java
+++ b/test/build/android/src/com/cisco/codec/unittest/MainActivity.java
@@ -53,7 +53,7 @@
// }
String path = "/sdcard/codec_unittest.xml";
Log.i("codec_unittest","codec unittest runing @"+path);
- DoUnittest(path);
+ DoUnittest("/sdcard", path);
Log.i("codec_unittest","codec unittest end");
Process.killProcess(Process.myPid());
finish();
@@ -76,6 +76,6 @@
}
- public native void DoUnittest(String path);
+ public native void DoUnittest(String directory, String path);
}