You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/02/02 14:08:26 UTC

svn commit: r502595 - in /harmony/enhanced/drlvm/trunk/src/test/regression/H3027: ./ AgentLib.cpp AgentLibTest.java run.test.xml

Author: gshimansky
Date: Fri Feb  2 05:08:25 2007
New Revision: 502595

URL: http://svn.apache.org/viewvc?view=rev&rev=502595
Log:
Applied HARMONY-3108 [drlvm][jvmti] Regression test for HARMONY-3027

Tested on ia32 linux and windows


Added:
    harmony/enhanced/drlvm/trunk/src/test/regression/H3027/
    harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLib.cpp   (with props)
    harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLibTest.java   (with props)
    harmony/enhanced/drlvm/trunk/src/test/regression/H3027/run.test.xml   (with props)

Added: harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLib.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLib.cpp?view=auto&rev=502595
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLib.cpp (added)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLib.cpp Fri Feb  2 05:08:25 2007
@@ -0,0 +1,49 @@
+#include <string.h>
+#include <jvmti.h>
+
+static void JNICALL vm_init_callback(jvmtiEnv* jvmti_env, JNIEnv* jni_env, jthread thread)
+{
+    jclass cl = jni_env->FindClass("org/apache/harmony/drlvm/tests/regression/h3027/Status");
+    if (NULL == cl)
+        return;
+
+    jfieldID fid = jni_env->GetStaticFieldID(cl, "status", "Z");
+    if (NULL == fid)
+        return;
+
+    jni_env->SetStaticBooleanField(cl, fid, JNI_TRUE);
+}
+
+JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved)
+{
+    jvmtiEnv *jvmti_env;
+    if(vm->GetEnv((void**)&jvmti_env, JVMTI_VERSION_1_0) != JNI_OK)
+        return JNI_ERR;
+
+    // Get all supported capabilities
+    jvmtiCapabilities capabilities;
+    jvmtiError result = jvmti_env->GetPotentialCapabilities(&capabilities);
+    if (JVMTI_ERROR_NONE != result)
+        return JNI_ERR;
+
+    // Enabled all supported capabilities
+    result = jvmti_env->AddCapabilities(&capabilities);
+    if (JVMTI_ERROR_NONE != result)
+        return JNI_ERR;
+
+    jvmtiEventCallbacks callbacks;
+    memset(&callbacks, 0, sizeof(jvmtiEventCallbacks));
+    callbacks.VMInit = vm_init_callback;
+
+    // Set callback for VMInit
+    result = jvmti_env->SetEventCallbacks(&callbacks, (jint)sizeof(callbacks));
+    if (JVMTI_ERROR_NONE != result)
+        return JNI_ERR;
+
+    // Set event mode to true
+    result = jvmti_env->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
+    if (JVMTI_ERROR_NONE != result)
+        return JNI_ERR;
+
+    return JNI_OK;
+}

Propchange: harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLib.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLibTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLibTest.java?view=auto&rev=502595
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLibTest.java (added)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLibTest.java Fri Feb  2 05:08:25 2007
@@ -0,0 +1,24 @@
+package org.apache.harmony.drlvm.tests.regression.h3027;
+
+import junit.framework.TestCase;
+
+/**
+ * Test case for -agentlib: command line option. 
+ * Should be executed with all JVMTI capabilie enabled.
+ */
+public class AgentLibTest extends TestCase {
+    public static void main(String args[]) {
+        (new AgentLibTest()).test();
+    }
+
+    public void test() {
+        System.out.println("test done");
+
+        assertTrue(Status.status);
+    }
+}
+
+class Status {
+    public static boolean status = false;
+}
+

Propchange: harmony/enhanced/drlvm/trunk/src/test/regression/H3027/AgentLibTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/src/test/regression/H3027/run.test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/H3027/run.test.xml?view=auto&rev=502595
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/H3027/run.test.xml (added)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/H3027/run.test.xml Fri Feb  2 05:08:25 2007
@@ -0,0 +1,14 @@
+<project name="RUN HARMONY-3027 Regression Test">
+    <target name="run-test">
+        <run-junit-test 
+            test="org.apache.harmony.drlvm.tests.regression.h3027.AgentLibTest">
+            <junit-element>
+                <jvmarg value="-Dvm.assert_dialog=0"/>
+                <jvmarg value="-agentlib:AgentLib"/>
+                <env key="PATH" path="${reg.test.2launch.native.path}:${env.PATH}"/>
+                <env key="LD_LIBRARY_PATH" path="${reg.test.2launch.native.path}:${env.LD_LIBRARY_PATH}"/>
+            </junit-element>
+        </run-junit-test>
+    </target>
+</project>
+

Propchange: harmony/enhanced/drlvm/trunk/src/test/regression/H3027/run.test.xml
------------------------------------------------------------------------------
    svn:eol-style = native