int main() { initLexer(0); testTokenStream("1 + 1", tokens0, N_ELEM(tokens0)); testTokenStream("{a comment line} $1 + 1", tokens0, N_ELEM(tokens0)); testTokenStream("{{a nested comment}} $1 + 1", tokens0, N_ELEM(tokens0)); testTokenStream("{{{a nested doc comment}} $1 + 1", tokens0, N_ELEM(tokens0)); testTokenStream("x-1+y", tokens1, N_ELEM(tokens1)); testTokenStream("_x0{some comment 1} - 1 + y_99", tokens1, N_ELEM(tokens1)); testTokenStream("con CON con99 Con 99", tokens2, N_ELEM(tokens2)); testTokenStream("< =< => > == = +<", tokens3, N_ELEM(tokens3)); testTokenStream(token4test, tokens4, N_ELEM(tokens4)); testTokenStream(token5test, tokens5, N_ELEM(tokens5)); testTokenStream(token6test, tokens6, N_ELEM(tokens6)); testTokenStream(token7test, tokens7, N_ELEM(tokens7)); testNumber("0", 0); testNumber("00", 0); testNumber("007", 7); testNumber("008", 8); testNumber("\t \t 123", 123); testNumber("65535", 65535); testNumber(" $41", 65); testNumber("$01_ff", 511); testNumber("$A5", 165); testNumber("%101", 5); testNumber("%11", 3); testNumber("%%31", 13); testNumber("80_000_000", 80000000); testFloat("1.0", 1.0f); testFloat("2.0", 2.0f); testFloat("0.01", 0.01f); testFloat("1.0e-2", 0.01f); testFloat("1.e-2", 0.01f); testFloat("3.14e5", 314000.0f); testIdentifier("x99+8", "X99"); testIdentifier("_a_b", "_A_b"); printf("all tests passed\n"); return 0; }
void hgTablesTest(char *url, char *logName) /* hgTablesTest - Test hgTables web page. */ { /* Get default page, and open log. */ struct htmlPage *rootPage = htmlPageGet(url); if (appendLog) logFile = mustOpen(logName, "a"); else logFile = mustOpen(logName, "w"); if (! endsWith(url, "hgTables")) warn("Warning: first argument should be a complete URL to hgTables, " "but doesn't look like one (%s)", url); htmlPageValidateOrAbort(rootPage); /* Go test what they've specified in command line. */ if (clDb != NULL) { testDb(rootPage, NULL, clDb); } else { struct htmlForm *mainForm; struct htmlFormVar *orgVar; if ((mainForm = htmlFormGet(rootPage, "mainForm")) == NULL) errAbort("Couldn't get main form"); if ((orgVar = htmlFormVarGet(mainForm, "org")) == NULL) errAbort("Couldn't get org var"); if (clOrg != NULL) testOrg(rootPage, mainForm, clOrg); else { struct slName *org; int orgIx; for (org = orgVar->values, orgIx=0; org != NULL && orgIx < clOrgs; org = org->next, ++orgIx) { testOrg(rootPage, mainForm, org->name); } } } /* Do some more complex tests on uniProt. */ testJoining(rootPage); testFilter(rootPage); testIdentifier(rootPage); /* Clean up and report. */ htmlPageFree(&rootPage); slReverse(&tablesTestList); reportSummary(tablesTestList, stdout); reportAll(tablesTestList, logFile); fprintf(logFile, "---------------------------------------------\n"); reportSummary(tablesTestList, logFile); }