harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vera Petrashkova (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-4304) [buildtest][vts] Test vm/jvmti/events/MethodExit/MethodExit0101 has large log
Date Fri, 29 Jun 2007 09:13:04 GMT
[buildtest][vts] Test vm/jvmti/events/MethodExit/MethodExit0101 has large log
-----------------------------------------------------------------------------

                 Key: HARMONY-4304
                 URL: https://issues.apache.org/jira/browse/HARMONY-4304
             Project: Harmony
          Issue Type: Bug
          Components: build - test - ci
            Reporter: Vera Petrashkova


Test vm/jvmti/events/MethodExit/MethodExit0101/MethodExit0101.xml
verifies that MethodExit event is generated for the used method.
But according to source code 
(see 
src/test/vm/jvmti/events/MethodExit/MethodExit010/MethodExit0101.cpp and 
src/test/vm/jvmti/events/share/events.h) 
this test checks information about all MethodExit events for all methods:

----------------------
void JNICALL callbackMethodExit(prms_METHOD_EXIT)
{
    check_METHOD_EXIT;    <<<<<<<<<<<<<<<   
         should be removed

    char* name = NULL;
    char* signature = NULL;
    char* generic = NULL;
    jvmtiError result;

    result = jvmti_env->GetMethodName(method, &name, &signature, &generic);

    if (result != JVMTI_ERROR_NONE) return;

    counter++;

    if (strcmp(name, "special_method")) return;

    fprintf(stderr, "\tnative: MethodExit (prms) jvmti_env is %p\n",jvmti_env);
    fprintf(stderr, "\tnative: MethodExit (prms) jni_env   is %p\n", jni_env);
    fprintf(stderr, "\tnative: MethodExit (prms) thread    is %p\n", thread);
    fprintf(stderr, "\tnative: MethodExit (prms) method    is %p\n", method);
    fflush(stderr);

    fprintf(stderr, "\tnative: GetMethodName result = %d (must be zero) \n",result);
    fprintf(stderr, "\tnative: method              is %p \n", method);
    fprintf(stderr, "\tnative: name                is %s \n", name);
    fprintf(stderr, "\tnative: signature           is %s \n", signature);
    fprintf(stderr, "\tnative: generic             is %s \n", generic);
    fflush(stderr);

    params = true;
}
-----------------events.h-----------
#define   check_METHOD_EXIT                                                \
if (jvmti_env == NULL)                                                     \
    fprintf(stderr,                                                        \
            "\tcheck: MethodExit was called with jvmti_env = NULL\n");     \
if (jni_env == NULL)                                                       \
    fprintf(stderr,                                                        \
            "\tcheck: MethodExit was called with jni_env = NULL\n");       \
if (thread == NULL)                                                        \
    fprintf(stderr,                                                        \
            "\tcheck: MethodExit was called with thread = NULL\n");        \
if (method == NULL)                                                        \
    fprintf(stderr,                                                        \
            "\tcheck: MethodExit was called with method = NULL\n");        \
if (was_popped_by_exception == 0)                                          \
    fprintf(stderr,                                                        \
            "\tcheck: MethodExit was called with popped_by_exc = 0\n");
---------------------

This test reports huge number of messages.
The test passes but it is needed a lot of time for its execution on Harmony.
As the result it fails with Timeout during QA cycle.

If we remove check_METHOD_EXIT then this test finishes in 1 minute


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message