naett.c

Tiny cross-platform HTTP / HTTPS client library in C.
git clone git://git.finwo.net/lib/naett.c
Log | Files | Refs | README | LICENSE

commit 7cc9ab4212deb227ce2d5731a4267401bd5e4458
parent bc86814f6b3df8a32c996a2ade5960ad6e66ab1a
Author: Erik Agsjö <erik.agsjo@gmail.com>
Date:   Sun, 12 Dec 2021 22:42:17 +0100

Android test cleanup

Diffstat:
Mtestrig/android/app/build.gradle | 2+-
Dtestrig/android/app/src/androidTest/java/com/example/naett/NaettTests.java | 14--------------
Atestrig/android/app/src/androidTest/java/naett/test/NaettTests.java | 14++++++++++++++
Mtestrig/android/app/src/main/AndroidManifest.xml | 2+-
Mtestrig/android/app/src/main/cpp/CMakeLists.txt | 10----------
Dtestrig/android/app/src/main/cpp/jniglue.h | 115-------------------------------------------------------------------------------
Dtestrig/android/app/src/main/cpp/log.h | 14--------------
Mtestrig/android/app/src/main/cpp/naettactivity.cpp | 86+------------------------------------------------------------------------------
8 files changed, 17 insertions(+), 240 deletions(-)

diff --git a/testrig/android/app/build.gradle b/testrig/android/app/build.gradle @@ -11,7 +11,7 @@ android { } defaultConfig { - applicationId 'com.example.naett' + applicationId 'naett.test' minSdk 26 targetSdk 29 externalNativeBuild { diff --git a/testrig/android/app/src/androidTest/java/com/example/naett/NaettTests.java b/testrig/android/app/src/androidTest/java/com/example/naett/NaettTests.java @@ -1,14 +0,0 @@ -package com.example.naett; - -import org.junit.Test; -import static org.junit.Assert.assertTrue; - -public class NaettTests { - @Test - public void naett_Test() { - System.loadLibrary("native-activity"); - assertTrue(runTests() != 0); - } - - private native int runTests(); -} diff --git a/testrig/android/app/src/androidTest/java/naett/test/NaettTests.java b/testrig/android/app/src/androidTest/java/naett/test/NaettTests.java @@ -0,0 +1,14 @@ +package naett.test; + +import org.junit.Test; +import static org.junit.Assert.assertTrue; + +public class NaettTests { + @Test + public void naett_Test() { + System.loadLibrary("native-activity"); + assertTrue(runTests() != 0); + } + + private native int runTests(); +} diff --git a/testrig/android/app/src/main/AndroidManifest.xml b/testrig/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.sedgelake.timogr" + package="naett.test" android:versionCode="1" android:versionName="1.0"> diff --git a/testrig/android/app/src/main/cpp/CMakeLists.txt b/testrig/android/app/src/main/cpp/CMakeLists.txt @@ -19,22 +19,12 @@ cmake_minimum_required(VERSION 3.4.1) set(${CMAKE_C_FLAGS}, "${CMAKE_C_FLAGS}") add_library(naett STATIC ../../../../../../naett.c ../../../../../test.c) -# now build app's shared lib set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall -Werror") - -# Export ANativeActivity_onCreate(), -# Refer to: https://github.com/android-ndk/ndk/issues/381. -set(CMAKE_SHARED_LINKER_FLAGS - "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate") - add_library(native-activity SHARED naettactivity.cpp) - target_include_directories(native-activity PRIVATE ../../../../../../) # add lib dependencies target_link_libraries(native-activity naett android - EGL - GLESv3 log) diff --git a/testrig/android/app/src/main/cpp/jniglue.h b/testrig/android/app/src/main/cpp/jniglue.h @@ -1,115 +0,0 @@ -#ifndef JNIGLUE_H -#define JNIGLUE_H - -#include "log.h" - -class JNIGlue { - public: - JNIGlue(JavaVM* vm) { - vm->GetEnv((void**)&_env, JNI_VERSION_1_6); - _env->PushLocalFrame(100); - } - - ~JNIGlue() { - _env->PopLocalFrame(NULL); - } - - jobject callObjectMethod(jclass clazz, const char* method, const char* signature, jobject instance, ...) { - jmethodID methodID = _env->GetMethodID(clazz, method, signature); - va_list args; - va_start(args, instance); - jobject result = _env->CallObjectMethodV(instance, methodID, args); - va_end(args); - checkException(); - return result; - } - - jobject callObjectMethod(const char* className, const char* method, const char* signature, jobject instance, ...) { - jmethodID methodID = getMethod(className, method, signature); - va_list args; - va_start(args, instance); - jobject result = _env->CallObjectMethodV(instance, methodID, args); - va_end(args); - checkException(); - return result; - } - - int callIntMethod(const char* className, const char* method, const char* signature, jobject instance, ...) { - jmethodID methodID = getMethod(className, method, signature); - va_list args; - va_start(args, instance); - int result = _env->CallIntMethodV(instance, methodID, args); - va_end(args); - checkException(); - return result; - } - - void callVoidMethod(jobject instance, const char* method, const char* signature, ...) { - jclass clazz = _env->GetObjectClass(instance); - jmethodID methodID = _env->GetMethodID(clazz, method, signature); - va_list args; - va_start(args, signature); - _env->CallVoidMethodV(instance, methodID, args); - va_end(args); - checkException(); - } - - void callVoidMethod(const char* className, const char* method, const char* signature, jobject instance, ...) { - jmethodID methodID = getMethod(className, method, signature); - va_list args; - va_start(args, instance); - _env->CallVoidMethodV(instance, methodID, args); - va_end(args); - checkException(); - } - - void callStaticVoidMethod(jclass clazz, const char* method, const char* signature, ...) { - jmethodID methodID = _env->GetMethodID(clazz, method, signature); - va_list args; - va_start(args, signature); - _env->CallStaticVoidMethodV(clazz, methodID, args); - va_end(args); - checkException(); - } - - int getStaticIntField(const char* className, const char* fieldName) { - jclass clazz = _env->FindClass(className); - jfieldID fieldID = _env->GetStaticFieldID(clazz, fieldName, "I"); - return _env->GetStaticIntField(clazz, fieldID); - } - - void throwException(const char* message) { - jclass clazz = _env->FindClass("java/lang/Exception"); - _env->ThrowNew(clazz, message); - } - - private: - void checkException() { - if (_env->ExceptionCheck()) { - jthrowable ex = _env->ExceptionOccurred(); - _env->ExceptionClear(); - jclass clazz = _env->GetObjectClass(ex); - jmethodID getMessage = _env->GetMethodID(clazz, "getMessage", "()Ljava/lang/String;"); - jstring message = (jstring)_env->CallObjectMethod(ex, getMessage); - const char* messageChars = _env->GetStringUTFChars(message, NULL); - LOGE("JNI Exception: %s", messageChars); - _env->ReleaseStringUTFChars(message, messageChars); - } - } - - jmethodID getMethod(const char* className, const char* method, const char* signature) { - jclass clazz = _env->FindClass(className); - jmethodID methodID = _env->GetMethodID(clazz, method, signature); - return methodID; - } - - jfieldID getStaticField(const char* className, const char* fieldName, const char* signature) { - jclass clazz = _env->FindClass(className); - jfieldID fieldID = _env->GetStaticFieldID(clazz, fieldName, signature); - return fieldID; - } - - JNIEnv* _env; -}; - -#endif // JNIGLUE_H diff --git a/testrig/android/app/src/main/cpp/log.h b/testrig/android/app/src/main/cpp/log.h @@ -1,14 +0,0 @@ -#ifndef LOG_H -#define LOG_H - -#include <android/log.h> - -#ifndef NDEBUG -# define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, "timogr", __VA_ARGS__)) -#else -# define LOGD(...) ((void)0) -#endif -#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "timogr", __VA_ARGS__)) -#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "timogr", __VA_ARGS__)) - -#endif // LOG_H diff --git a/testrig/android/app/src/main/cpp/naettactivity.cpp b/testrig/android/app/src/main/cpp/naettactivity.cpp @@ -1,98 +1,14 @@ -#include <android/native_activity.h> - -#include "jniglue.h" -#include "log.h" #include "naett.h" -static void onStart(ANativeActivity* activity) { - LOGD("onStart"); -} - -static void onResume(ANativeActivity* activity) { - LOGD("onResume"); -} - -static void* onSaveInstanceState(ANativeActivity* activity, size_t* outSize) { - LOGD(__func__); - return NULL; -} - -static void onPause(ANativeActivity* activity) { - LOGD("onPause"); -} - -static void onStop(ANativeActivity* activity) { - LOGD("onStop"); -} - -static void onDestroy(ANativeActivity* activity) { - LOGD("onDestroy"); -} - -static void onWindowFocusChanged(ANativeActivity* activity, int focused) { -} - -static void onNativeWindowCreated(ANativeActivity* activity, ANativeWindow* window) { - LOGD("onNativeWindowCreated"); -} - -static void onNativeWindowDestroyed(ANativeActivity* activity, ANativeWindow* window) { - LOGD("onNativeWindowDestroyed"); -} - -static void onInputQueueCreated(ANativeActivity* activity, AInputQueue* queue) { - LOGD(__func__); -} - -static void onInputQueueDestroyed(ANativeActivity* activity, AInputQueue* queue) { - LOGD(__func__); -} - -static void onContentRectChanged(ANativeActivity* activity, const ARect* rect) { - LOGD(__func__); -} - -static void onConfigurationChanged(ANativeActivity* activity) { - LOGD(__func__); -} - -static void onLowMemory(ANativeActivity* activity) { - LOGD(__func__); -} - -JNIEXPORT -void ANativeActivity_onCreate(ANativeActivity* activity, void* savedState, size_t savedStateSize) { - LOGD("onCreate"); - activity->callbacks->onStart = onStart; - activity->callbacks->onResume = onResume; - activity->callbacks->onSaveInstanceState = onSaveInstanceState; - activity->callbacks->onPause = onPause; - activity->callbacks->onStop = onStop; - activity->callbacks->onDestroy = onDestroy; - activity->callbacks->onWindowFocusChanged = onWindowFocusChanged; - activity->callbacks->onNativeWindowCreated = onNativeWindowCreated; - activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyed; - activity->callbacks->onInputQueueCreated = onInputQueueCreated; - activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyed; - activity->callbacks->onContentRectChanged = onContentRectChanged; - activity->callbacks->onConfigurationChanged = onConfigurationChanged; - activity->callbacks->onLowMemory = onLowMemory; - activity->instance = 0; - - JNIEnv* env; - activity->vm->GetEnv((void**)&env, JNI_VERSION_1_6); -} - extern "C" { int runTests(const char* endpoint); JNIEXPORT -int JNICALL Java_com_example_naett_NaettTests_runTests(JNIEnv* env, jobject obj) { +int JNICALL Java_naett_test_NaettTests_runTests(JNIEnv* env, jobject obj) { JavaVM* vm = nullptr; env->GetJavaVM(&vm); naettInit(vm); return runTests("http://10.0.2.2:4711"); } - }