blob: 2262d28f7aa80133bbdf564804b183367672f258 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// A simple library that provides JNI_OnLoad() and JNI_OnUnload() hooks.
// Used by test_java_vm.cpp
#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define VARNAME "TEST_VAR"
extern "C" int JNI_OnLoad(JavaVM* vm, void* reserved) {
printf("%s: Entering\n", __FUNCTION__);
const char* env = getenv(VARNAME);
if (!env || strcmp(env, "INIT")) {
fprintf(stderr,
"%s: Env variable %s has invalid value: %s (expected INIT)\n",
__FUNCTION__,
VARNAME,
env);
exit(1);
}
setenv(VARNAME, "LOADED", 1);
printf("%s: Exiting\n", __FUNCTION__);
return JNI_VERSION_1_4;
}
extern "C" void JNI_OnUnload(JavaVM* vm, void* reserved) {
printf("%s: Entering\n", __FUNCTION__);
const char* env = getenv(VARNAME);
if (!env || strcmp(env, "LOADED")) {
fprintf(stderr,
"%s: Env variable %s has invalid value: %s (expected LOADED)\n",
__FUNCTION__,
VARNAME,
env);
exit(1);
}
setenv(VARNAME, "UNLOADED", 1);
printf("%s: Exiting\n", __FUNCTION__);
}