Ignore:
Timestamp:
Mar 21, 2009, 6:40:22 PM (16 years ago)
Author:
[email protected]
Message:

Improve testapi by making it report failures in a way we can pick up
from our test scripts.

Reviewed by Mark Rowe.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/API/tests/testapi.c

    r41846 r41893  
    4242
    4343static JSGlobalContextRef context = 0;
    44 
     44static int failed = 0;
    4545static void assertEqualsAsBoolean(JSValueRef value, bool expectedValue)
    4646{
    47     if (JSValueToBoolean(context, value) != expectedValue)
     47    if (JSValueToBoolean(context, value) != expectedValue) {
    4848        fprintf(stderr, "assertEqualsAsBoolean failed: %p, %d\n", value, expectedValue);
     49        failed = 1;
     50    }
    4951}
    5052
     
    5658    // causing a build break with -Wshorten-64-to-32 enabled.  The issue is known by the appropriate team.
    5759    // After that's resolved, we can remove these casts
    58     if (number != expectedValue && !(isnan((float)number) && isnan((float)expectedValue)))
     60    if (number != expectedValue && !(isnan((float)number) && isnan((float)expectedValue))) {
    5961        fprintf(stderr, "assertEqualsAsNumber failed: %p, %lf\n", value, expectedValue);
     62        failed = 1;
     63    }
    6064}
    6165
     
    6973   
    7074    unsigned i;
    71     for (i = 0; jsBuffer[i]; i++)
    72         if (jsBuffer[i] != expectedValue[i])
     75    for (i = 0; jsBuffer[i]; i++) {
     76        if (jsBuffer[i] != expectedValue[i]) {
    7377            fprintf(stderr, "assertEqualsAsUTF8String failed at character %d: %c(%d) != %c(%d)\n", i, jsBuffer[i], jsBuffer[i], expectedValue[i], expectedValue[i]);
    74        
    75     if (jsSize < strlen(jsBuffer) + 1)
     78            failed = 1;
     79        }
     80    }
     81
     82    if (jsSize < strlen(jsBuffer) + 1) {
    7683        fprintf(stderr, "assertEqualsAsUTF8String failed: jsSize was too small\n");
     84        failed = 1;
     85    }
    7786
    7887    free(jsBuffer);
     
    95104    CFRelease(expectedValueAsCFString);
    96105
    97     if (memcmp(jsBuffer, cfBuffer, cfLength * sizeof(UniChar)) != 0)
     106    if (memcmp(jsBuffer, cfBuffer, cfLength * sizeof(UniChar)) != 0) {
    98107        fprintf(stderr, "assertEqualsAsCharactersPtr failed: jsBuffer != cfBuffer\n");
    99    
    100     if (jsLength != (size_t)cfLength)
     108        failed = 1;
     109    }
     110   
     111    if (jsLength != (size_t)cfLength) {
    101112        fprintf(stderr, "assertEqualsAsCharactersPtr failed: jsLength(%ld) != cfLength(%ld)\n", jsLength, cfLength);
    102    
     113        failed = 1;
     114    }
     115
    103116    free(cfBuffer);
    104117    JSStringRelease(valueAsString);
     
    847860   
    848861    string = JSValueToStringCopy(context, function, NULL);
    849     assertEqualsAsUTF8String(JSValueMakeString(context, string), "function foo(foo) {return foo;}");
     862    assertEqualsAsUTF8String(JSValueMakeString(context, string), "function foo(foo) {\nreturn foo;\n}");
    850863    JSStringRelease(string);
    851864
     
    10081021    printf("PASS: Infinite prototype chain does not occur.\n");
    10091022
     1023    if (failed) {
     1024        printf("FAIL: Some tests failed.\n");
     1025        return 1;
     1026    }
     1027
    10101028    printf("PASS: Program exited normally.\n");
    10111029    return 0;
Note: See TracChangeset for help on using the changeset viewer.