Browse Source

JNI-94 Add get_machine_directory and get_user_directory wrapper and test

JNI-94
Hussein Kasem 5 years ago
parent
commit
e10209e8fc
  1. 17
      src/basic_api.cc
  2. 10
      src/gen_java_Engine.ysl2
  3. 2
      src/pEp.yml2
  4. 3
      test/java/foundation/pEp/jniadapter/test/Makefile
  5. 32
      test/java/foundation/pEp/jniadapter/test/jni94/Makefile
  6. 35
      test/java/foundation/pEp/jniadapter/test/jni94/TestMain.java

17
src/basic_api.cc

@ -331,5 +331,22 @@ JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine_getCrashdumpL
return from_string(env, _logdata); return from_string(env, _logdata);
} }
JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getUserDirectory(
JNIEnv *env,
jobject obj
)
{
return from_string(env, ::per_user_directory());
}
JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1getMachineDirectory(
JNIEnv *env,
jobject obj
)
{
return from_string(env, ::per_machine_directory());
}
} // extern "C" } // extern "C"

10
src/gen_java_Engine.ysl2

@ -37,20 +37,20 @@ tstylesheet {
|| ||
otherwise { otherwise {
|| ||
private native «$itype» «@name»(`apply "parm/*", mode=basic_iparm`); private native «$itype» _«@name»(`apply "parm/*", mode=basic_iparm`);
public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) { public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) {
|| ||
apply "parm/*", mode=basic_parm_set; apply "parm/*", mode=basic_parm_set;
choose { choose {
when "@type = 'void'" when "@type = 'void'"
|> «@name»(`apply "parm/*", mode=basic_parm_name`); |> _«@name»(`apply "parm/*", mode=basic_parm_name`);
when "@type = 'identity'" when "@type = 'identity'"
|> return new Identity(«@name»(`apply "parm/*", mode=basic_parm_name`)); |> return new Identity(_«@name»(`apply "parm/*", mode=basic_parm_name`));
when "@type = 'bool'" when "@type = 'bool'"
|> return new Boolean(«@name»(`apply "parm/*", mode=basic_parm_name`)); |> return new Boolean(_«@name»(`apply "parm/*", mode=basic_parm_name`));
otherwise otherwise
|> return AbstractEngine.toUTF16(«@name»(`apply "parm/*", mode=basic_parm_name`)); |> return AbstractEngine.toUTF16(_«@name»(`apply "parm/*", mode=basic_parm_name`));
} }
|| ||
} }

2
src/pEp.yml2

@ -265,6 +265,8 @@ namespace pEp {
basic void config_passive_mode(bool enable); basic void config_passive_mode(bool enable);
basic void config_unencrypted_subject(bool enable); basic void config_unencrypted_subject(bool enable);
basic string getCrashdumpLog(int maxlines); basic string getCrashdumpLog(int maxlines);
basic string getUserDirectory();
basic string getMachineDirectory();
}; };
struct message { struct message {

3
test/java/foundation/pEp/jniadapter/test/Makefile

@ -8,6 +8,7 @@ run: compile
$(MAKE) -C jni88 run $(MAKE) -C jni88 run
$(MAKE) -C jni91 run $(MAKE) -C jni91 run
$(MAKE) -C jni92 run $(MAKE) -C jni92 run
$(MAKE) -C jni94 run
compile: compile:
$(MAKE) -C basic compile $(MAKE) -C basic compile
@ -15,6 +16,7 @@ compile:
$(MAKE) -C jni88 compile $(MAKE) -C jni88 compile
$(MAKE) -C jni91 compile $(MAKE) -C jni91 compile
$(MAKE) -C jni92 compile $(MAKE) -C jni92 compile
$(MAKE) -C jni94 compile
clean: clean:
$(MAKE) -C basic clean $(MAKE) -C basic clean
@ -22,6 +24,7 @@ clean:
$(MAKE) -C jni88 clean $(MAKE) -C jni88 clean
$(MAKE) -C jni91 clean $(MAKE) -C jni91 clean
$(MAKE) -C jni92 clean $(MAKE) -C jni92 clean
$(MAKE) -C jni94 clean
clean-pep-home: clean-pep-home:
$(MAKE) -C basic clean-pep-home $(MAKE) -C basic clean-pep-home

32
test/java/foundation/pEp/jniadapter/test/jni94/Makefile

@ -0,0 +1,32 @@
include ../../../../../../../Makefile.conf
include ../Makefile.conf
TEST_UNIT_NAME=jni94
JAVA_CLASSES = \
TestMain.class \
../utils/TestUtils.class
.PHONY: compile run test clean
all: compile
$(MAKE) run
run: compile
cd $(JAVA_CWD);HOME=$(JAVA_PEP_HOME_DIR) $(JAVA) $(JAVA_PKG_BASENAME).$(TEST_UNIT_NAME).TestMain
compile: $(JAVA_CLASSES)
%.class: %.java
cd $(JAVA_CWD);javac -cp $(CLASSPATH) $(JAVA_PKG_BASEPATH)/$(TEST_UNIT_NAME)/$<
clean:
rm -f $(JAVA_CLASSES)
rm -f *.class
rm -f *.log
rm -Rf .gnupg
rm -Rf .lldb
clean-pep-home:
rm -rf $(PEP_HOME_DIR)/*
rm -rf $(PEP_HOME_DIR)/.pEp

35
test/java/foundation/pEp/jniadapter/test/jni94/TestMain.java

@ -0,0 +1,35 @@
package foundation.pEp.jniadapter.test.jni94;
import foundation.pEp.jniadapter.*;
import foundation.pEp.jniadapter.test.utils.TestUtils;
import java.lang.Thread;
/*
This test tries to use the feature described in in JNI-94
https://pep.foundation/jira/browse/JNI-94
`engine.getMachineDirectory()` and `engine.getUserDirectory()`
*/
class TestMain {
public static void main(String[] args) {
Engine engine;
try {
TestUtils.logH2("Creating new Engine");
engine = new Engine();
Sync.DefaultCallback callbacks = new Sync.DefaultCallback();
engine.setMessageToSendCallback(callbacks);
TestUtils.logH2("Machine directory: ");
TestUtils.log(engine.getMachineDirectory());
TestUtils.logH2("User directory:" );
TestUtils.log(engine.getUserDirectory());
}
catch (pEpException ex) {
System.out.println("Cannot load");
return;
}
}
}
Loading…
Cancel
Save