Browse Source
new package foundation.pEp.jniadapter.test shared classes and resources now possible for tests. Preparation for Test Framework and Code Coverage tool.JNI-94

26 changed files with 414 additions and 193 deletions
@ -1,27 +0,0 @@ |
|||
include ../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
JAVA_CLASSES = \
|
|||
Testing.class \
|
|||
SyncCallbacks.class |
|||
|
|||
.PHONY: compile run test clean |
|||
|
|||
all: compile |
|||
$(MAKE) run |
|||
|
|||
run: compile |
|||
HOME=$(PWD) CLASSPATH=$(CLASSPATH) time $(VM) Testing |
|||
|
|||
compile: $(JAVA_CLASSES) |
|||
|
|||
%.class: %.java |
|||
CLASSPATH=$(CLASSPATH) javac $< |
|||
|
|||
clean: |
|||
rm -f *.class |
|||
rm -f *.log |
|||
rm -rf .pEp_* |
|||
rm -Rf .pEp |
|||
rm -Rf .gnupg |
|||
rm -Rf .lldb |
@ -1,32 +0,0 @@ |
|||
include ../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
#TODO: Remove when successufuly reproduce the error, and then use it to avoid regression
|
|||
$(info This is to be run using pEpJNIAdapter 626) |
|||
|
|||
JAVA_CLASSES = \
|
|||
SyncCallbacks.class \
|
|||
Step1.class \
|
|||
Step2.class |
|||
|
|||
.PHONY: compile run test clean |
|||
|
|||
all: compile |
|||
$(MAKE) run |
|||
|
|||
run: compile |
|||
-HOME=$(PWD) CLASSPATH=$(CLASSPATH) time $(VM) Step1 |
|||
HOME=$(PWD) CLASSPATH=$(CLASSPATH) time $(VM) Step2 |
|||
|
|||
compile: $(JAVA_CLASSES) |
|||
|
|||
%.class: %.java |
|||
CLASSPATH=$(CLASSPATH) javac $< |
|||
|
|||
clean: |
|||
rm -f *.class |
|||
rm -f *.log |
|||
rm -f .pEp_* |
|||
rm -Rf .pEp |
|||
rm -Rf .gnupg |
|||
rm -Rf .lldb |
@ -1,26 +0,0 @@ |
|||
include ../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
JAVA_CLASSES = \
|
|||
TestMain.class |
|||
|
|||
.PHONY: compile run test clean |
|||
|
|||
all: compile |
|||
$(MAKE) run |
|||
|
|||
run: compile |
|||
HOME=$(PWD) CLASSPATH=$(CLASSPATH) time $(VM) TestMain |
|||
|
|||
compile: $(JAVA_CLASSES) |
|||
|
|||
%.class: %.java |
|||
CLASSPATH=$(CLASSPATH) javac $< |
|||
|
|||
clean: |
|||
rm -f *.class |
|||
rm -f *.log |
|||
rm -rf .pEp_* |
|||
rm -Rf .pEp |
|||
rm -Rf .gnupg |
|||
rm -Rf .lldb |
@ -1,26 +0,0 @@ |
|||
include ../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
JAVA_CLASSES = \
|
|||
TestMain.class |
|||
|
|||
.PHONY: compile run test clean |
|||
|
|||
all: compile |
|||
$(MAKE) run |
|||
|
|||
run: compile |
|||
HOME=$(PWD) CLASSPATH=$(CLASSPATH) time $(VM) TestMain |
|||
|
|||
compile: $(JAVA_CLASSES) |
|||
|
|||
%.class: %.java |
|||
CLASSPATH=$(CLASSPATH) javac $< |
|||
|
|||
clean: |
|||
rm -f *.class |
|||
rm -f *.log |
|||
rm -rf .pEp_* |
|||
rm -Rf .pEp |
|||
rm -Rf .gnupg |
|||
rm -Rf .lldb |
@ -1,18 +0,0 @@ |
|||
.PHONY: all compile run clean |
|||
|
|||
all: compile |
|||
|
|||
run: compile |
|||
$(MAKE) -C Basic run |
|||
$(MAKE) -C JNI-85 run |
|||
$(MAKE) -C JNI-88 run |
|||
|
|||
compile: |
|||
$(MAKE) -C Basic compile |
|||
$(MAKE) -C JNI-85 compile |
|||
$(MAKE) -C JNI-88 compile |
|||
|
|||
clean: |
|||
$(MAKE) -C Basic clean |
|||
$(MAKE) -C JNI-85 clean |
|||
$(MAKE) -C JNI-88 clean |
@ -1,18 +0,0 @@ |
|||
$(info If on Mac, make sure to disable SIP, or copy the libpEpEngine.dylib into here) |
|||
|
|||
ifdef ENGINE_LIB_PATH |
|||
ifeq ($(BUILD_FOR),Linux) |
|||
ifndef LD_LIBRARY_PATH |
|||
export LD_LIBRARY_PATH=$(ENGINE_LIB_PATH) |
|||
endif |
|||
else ifeq ($(BUILD_FOR),Darwin) |
|||
ifndef DYLD_LIBRARY_PATH |
|||
export DYLD_LIBRARY_PATH=$(ENGINE_LIB_PATH) |
|||
endif |
|||
endif |
|||
endif |
|||
|
|||
|
|||
CLASSPATH=.:../../src |
|||
VM=java -Xcheck:jni -Djava.library.path=../../src |
|||
#VM=lldb java -- -Xcheck:jni -Djava.library.path=../src
|
@ -0,0 +1,27 @@ |
|||
.PHONY: all compile run clean |
|||
|
|||
all: compile |
|||
|
|||
run: compile |
|||
$(MAKE) -C basic run |
|||
#BROKEN $(MAKE) -C jni85 run
|
|||
$(MAKE) -C jni88 run |
|||
$(MAKE) -C jni91 run |
|||
$(MAKE) -C jni92 run |
|||
|
|||
compile: |
|||
$(MAKE) -C basic compile |
|||
#BROKEN $(MAKE) -C jni85 compile
|
|||
$(MAKE) -C jni88 compile |
|||
$(MAKE) -C jni91 compile |
|||
$(MAKE) -C jni92 compile |
|||
|
|||
clean: |
|||
$(MAKE) -C basic clean |
|||
$(MAKE) -C jni85 clean |
|||
$(MAKE) -C jni88 clean |
|||
$(MAKE) -C jni91 clean |
|||
$(MAKE) -C jni92 clean |
|||
|
|||
clean-pep-home: |
|||
$(MAKE) -C basic clean-pep-home |
@ -0,0 +1,25 @@ |
|||
JAVA_PKG_BASENAME=foundation.pEp.jniadapter.test |
|||
JAVA_PKG_BASEPATH=foundation/pEp/jniadapter/test |
|||
REPOROOT=../.. |
|||
JAVA_CWD=../../../../../ |
|||
JAVA_RESOURCES_DIR=../resources |
|||
JAVA_PEP_HOME_DIR=$(JAVA_RESOURCES_DIR)/pep-home |
|||
PEP_HOME_DIR=$(JAVA_CWD)$(JAVA_PEP_HOME_DIR) |
|||
CLASSPATH=.:$(REPOROOT)/src |
|||
|
|||
JAVA=java -Xcheck:jni -cp $(CLASSPATH) -Djava.library.path=$(CLASSPATH) |
|||
|
|||
|
|||
$(info If on Mac, make sure to disable SIP, or copy the libpEpEngine.dylib into here) |
|||
ifdef ENGINE_LIB_PATH |
|||
ifeq ($(BUILD_FOR),Linux) |
|||
ifndef LD_LIBRARY_PATH |
|||
export LD_LIBRARY_PATH=$(ENGINE_LIB_PATH) |
|||
endif |
|||
else ifeq ($(BUILD_FOR),Darwin) |
|||
ifndef DYLD_LIBRARY_PATH |
|||
export DYLD_LIBRARY_PATH=$(ENGINE_LIB_PATH) |
|||
endif |
|||
endif |
|||
endif |
|||
|
@ -0,0 +1,33 @@ |
|||
include ../../../../../../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
TEST_UNIT_NAME=basic |
|||
|
|||
JAVA_CLASSES = \
|
|||
SyncCallbacks.class \
|
|||
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 |
@ -1,3 +1,4 @@ |
|||
package foundation.pEp.jniadapter.test.basic; |
|||
import foundation.pEp.jniadapter.*; |
|||
|
|||
class SyncCallbacks implements Sync.MessageToSendCallback, Sync.NotifyHandshakeCallback { |
@ -0,0 +1,33 @@ |
|||
include ../../../../../../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
TEST_UNIT_NAME=jni85 |
|||
|
|||
JAVA_CLASSES = \
|
|||
Step1.class \
|
|||
Step2.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 |
@ -1,3 +1,4 @@ |
|||
package foundation.pEp.jniadapter.test.jni85; |
|||
import foundation.pEp.jniadapter.*; |
|||
import java.util.Vector; |
|||
import java.net.URL; |
@ -1,15 +1,8 @@ |
|||
package foundation.pEp.jniadapter.test.jni85; |
|||
import foundation.pEp.jniadapter.*; |
|||
import java.util.Vector; |
|||
import java.net.URL; |
|||
import java.net.URLClassLoader; |
|||
import java.lang.Thread; |
|||
import java.lang.InterruptedException; |
|||
|
|||
import java.io.IOException; |
|||
import java.nio.file.Files; |
|||
import java.nio.file.Path; |
|||
import java.nio.file.Paths; |
|||
|
|||
class Step2 { |
|||
|
|||
public static void main(String[] args) { |
@ -1,3 +1,4 @@ |
|||
package foundation.pEp.jniadapter.test.jni85; |
|||
import foundation.pEp.jniadapter.*; |
|||
|
|||
public class SyncCallbacks implements Sync.MessageToSendCallback, Sync.NotifyHandshakeCallback { |
@ -0,0 +1,32 @@ |
|||
include ../../../../../../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
TEST_UNIT_NAME=jni88 |
|||
|
|||
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 |
@ -1,14 +1,7 @@ |
|||
package foundation.pEp.jniadapter.test.jni88; |
|||
import foundation.pEp.jniadapter.*; |
|||
import java.util.Vector; |
|||
import java.net.URL; |
|||
import java.net.URLClassLoader; |
|||
import java.lang.Thread; |
|||
import java.lang.InterruptedException; |
|||
|
|||
import java.io.IOException; |
|||
import java.nio.file.Files; |
|||
import java.nio.file.Path; |
|||
import java.nio.file.Paths; |
|||
|
|||
|
|||
/* |
@ -0,0 +1,32 @@ |
|||
include ../../../../../../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
TEST_UNIT_NAME=jni91 |
|||
|
|||
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 |
@ -1,3 +1,4 @@ |
|||
package foundation.pEp.jniadapter.test.jni91; |
|||
import foundation.pEp.jniadapter.*; |
|||
|
|||
import java.lang.Thread; |
@ -0,0 +1,33 @@ |
|||
include ../../../../../../../Makefile.conf |
|||
include ../Makefile.conf |
|||
|
|||
TEST_UNIT_NAME=jni92 |
|||
|
|||
JAVA_CLASSES = \
|
|||
SyncCallbacks.class \
|
|||
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 |
@ -0,0 +1,24 @@ |
|||
package foundation.pEp.jniadapter.test.jni92; |
|||
import foundation.pEp.jniadapter.test.utils.TestUtils; |
|||
import foundation.pEp.jniadapter.*; |
|||
|
|||
class SyncCallbacks implements Sync.MessageToSendCallback, Sync.NotifyHandshakeCallback { |
|||
public void messageToSend(Message message) |
|||
{ |
|||
TestUtils.logH2("Message to send called"); |
|||
TestUtils.log("From: " + message.getFrom()); |
|||
TestUtils.log("To: " + message.getTo()); |
|||
TestUtils.log("Subject: " + message.getShortmsg()); |
|||
TestUtils.log("Attachement[0]: " + message.getAttachments().get(0).toString()); |
|||
TestUtils.logSectEnd(); |
|||
} |
|||
|
|||
public void notifyHandshake(Identity myself, Identity partner, SyncHandshakeSignal signal) |
|||
{ |
|||
TestUtils.logH2("Notify handshake called"); |
|||
TestUtils.log("Myself: " + myself); |
|||
TestUtils.log("Partner: " + partner); |
|||
TestUtils.log("Signal: " + signal); |
|||
TestUtils.logSectEnd(); |
|||
} |
|||
} |
@ -0,0 +1,84 @@ |
|||
package foundation.pEp.jniadapter.test.jni92; |
|||
import foundation.pEp.jniadapter.test.utils.TestUtils; |
|||
import foundation.pEp.jniadapter.*; |
|||
|
|||
import java.lang.Thread; |
|||
import java.util.Vector; |
|||
|
|||
|
|||
/* |
|||
This test is trying to reproduce the problem described in JNI-91 |
|||
https://pep.foundation/jira/browse/JNI-81
|
|||
|
|||
`engine.key_reset_identity` and `engine.setMessageToSendCallback` |
|||
*/ |
|||
|
|||
|
|||
|
|||
class TestThread extends Thread { |
|||
private String threadName = "TestThread-1"; |
|||
private Engine engine = null; |
|||
|
|||
TestThread(String threadName) { |
|||
this.threadName = threadName; |
|||
} |
|||
|
|||
public void run() { |
|||
TestUtils.logH1(threadName + ": Starting thread"); |
|||
|
|||
try { |
|||
// load engine
|
|||
try { |
|||
engine = new Engine(); |
|||
SyncCallbacks callbacks = new SyncCallbacks(); |
|||
engine.setMessageToSendCallback(callbacks); |
|||
engine.setNotifyHandshakeCallback(callbacks); |
|||
} catch (pEpException ex) { |
|||
TestUtils.log(threadName + ": cannot load"); |
|||
return; |
|||
} |
|||
TestUtils.log(threadName + ": Engine loaded"); |
|||
if(!engine.isSyncRunning()) { |
|||
engine.startSync(); |
|||
} |
|||
|
|||
} catch (Exception e) { |
|||
TestUtils.log("Exception in Thread " + threadName); |
|||
TestUtils.log(e.toString()); |
|||
} |
|||
TestUtils.sleep(20000); |
|||
if(engine.isSyncRunning()) { |
|||
engine.stopSync(); |
|||
} |
|||
TestUtils.log(threadName + ": DONE"); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
class TestMain { |
|||
public static void main(String[] args) throws Exception { |
|||
TestUtils.logH1("JNI-92 Starting"); |
|||
|
|||
Vector<TestThread> tts = new Vector<TestThread>(); |
|||
int nrThreads = 3; |
|||
for(int i = 0; i < nrThreads; i++){ |
|||
tts.add(new TestThread("TestThread-" + i)); |
|||
} |
|||
|
|||
tts.forEach( t -> { |
|||
t.start(); |
|||
TestUtils.sleep(2000); |
|||
}); |
|||
|
|||
tts.forEach( t -> { |
|||
try { |
|||
t.join(); |
|||
} catch(Exception e ){ |
|||
TestUtils.log("Exception joining thread" + e.toString()); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
|
|||
|
@ -0,0 +1,52 @@ |
|||
package foundation.pEp.jniadapter.test.utils; |
|||
import foundation.pEp.jniadapter.*; |
|||
|
|||
public class TestUtils { |
|||
public static void sleep(int mSec) { |
|||
try { |
|||
Thread.sleep(mSec); |
|||
} catch (InterruptedException ex) { |
|||
System.out.println("sleep got interrupted"); |
|||
} |
|||
} |
|||
|
|||
public static String identityToString(Identity i) { |
|||
String ret = "address: " + i.address + "\n"; |
|||
ret += "fpr: " + i.fpr + "\n"; |
|||
ret += "username: " + i.username + "\n"; |
|||
ret += "user_id: " + i.user_id + "\n"; |
|||
ret += "flags: " + i.flags + "\n"; |
|||
ret += "lang: " + i.lang + "\n"; |
|||
ret += "me: " + i.me + "\n"; |
|||
ret += "comm_type: " + i.comm_type; |
|||
return ret; |
|||
} |
|||
|
|||
public static void log(String msg) { |
|||
System.out.println(msg); |
|||
} |
|||
|
|||
public static void logH1(String msg) { |
|||
String decorationStr = getDecoratorString(msg, "="); |
|||
System.out.println(decorationStr + " " + msg.toUpperCase() + " " + decorationStr); |
|||
} |
|||
|
|||
public static void logH2(String msg) { |
|||
String decorationStr = getDecoratorString(msg, "-"); |
|||
System.out.println(decorationStr + " " + msg + " " + decorationStr); |
|||
} |
|||
|
|||
private static String getDecoratorString(String msg, String s) { |
|||
int lineWidth = 80; |
|||
String decorationChar = s; |
|||
String decorationStr = ""; |
|||
for (int i = 0; i < Math.ceil((lineWidth - msg.length() + 2) / 2); i++) { |
|||
decorationStr += decorationChar; |
|||
} |
|||
return decorationStr; |
|||
} |
|||
|
|||
public static void logSectEnd() { |
|||
System.out.println(""); |
|||
} |
|||
} |
Loading…
Reference in new issue