LCOV - app.info - js/src/jsapi-tests/testScriptObject.cpp

LCOV - code coverage report
| Current view: | directory - js/src/jsapi-tests - testScriptObject.cpp (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 65 | 65 | 100.0 %
| Date: | 2012-04-07 | Functions: | 62 | 49 | 79.0 %

           1                 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
           2                 :  * vim: set ts=8 sw=4 et tw=99:
           3                 :  */
           4                 :
           5                 : #include "tests.h"
           6                 :
           7              11 : struct ScriptObjectFixture : public JSAPITest {
           8                 :     static const int code_size;
           9                 :     static const char code[];
          10                 :     static jschar uc_code[];
          11                 :
          12              11 :     ScriptObjectFixture()
          13              11 :     {
          14             572 :         for (int i = 0; i < code_size; i++)
          15             561 :             uc_code[i] = code[i];
          16              11 :     }
          17                 :
          18              11 :     bool tryScript(JSScript *script)
          19                 :     {
          20              11 :         CHECK(script);
          21                 :
          22              11 :         JS_GC(cx);
          23                 :
          24                 :         /* After a garbage collection, the script should still work. */
          25                 :         jsval result;
          26              11 :         CHECK(JS_ExecuteScript(cx, global, script, &result));
          27                 :
          28              11 :         return true;
          29                 :     }
          30                 : };
          31                 :
          32                 : const char ScriptObjectFixture::code[] =
          33                 :     "(function(a, b){return a+' '+b;}('hello', 'world'))";
          34                 : const int ScriptObjectFixture::code_size = sizeof(ScriptObjectFixture::code) - 1;
          35                 : jschar ScriptObjectFixture::uc_code[ScriptObjectFixture::code_size];
          36                 :
          37               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_CompileScript)
          38                 : {
          39                 :     return tryScript(JS_CompileScript(cx, global, code, code_size,
          40               1 :                                       __FILE__, __LINE__));
          41                 : }
          42               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_CompileScript)
          43                 :
          44               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_CompileScript_empty)
          45                 : {
          46                 :     return tryScript(JS_CompileScript(cx, global, "", 0,
          47               1 :                                       __FILE__, __LINE__));
          48                 : }
          49               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_CompileScript_empty)
          50                 :
          51               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_CompileScriptForPrincipals)
          52                 : {
          53                 :     return tryScript(JS_CompileScriptForPrincipals(cx, global, NULL,
          54                 :                                                    code, code_size,
          55               1 :                                                    __FILE__, __LINE__));
          56                 : }
          57               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_CompileScriptForPrincipals)
          58                 :
          59               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileUCScript)
          60                 : {
          61                 :     return tryScript(JS_CompileUCScript(cx, global,
          62                 :                                         uc_code, code_size,
          63               1 :                                         __FILE__, __LINE__));
          64                 : }
          65               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileUCScript)
          66                 :
          67               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileUCScript_empty)
          68                 : {
          69                 :     return tryScript(JS_CompileUCScript(cx, global,
          70                 :                                         uc_code, 0,
          71               1 :                                         __FILE__, __LINE__));
          72                 : }
          73               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileUCScript_empty)
          74                 :
          75               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileUCScriptForPrincipals)
          76                 : {
          77                 :     return tryScript(JS_CompileUCScriptForPrincipals(cx, global, NULL,
          78                 :                                                      uc_code, code_size,
          79               1 :                                                      __FILE__, __LINE__));
          80                 : }
          81               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileUCScriptForPrincipals)
          82                 :
          83               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFile)
          84                 : {
          85               2 :     TempFile tempScript;
          86                 :     static const char script_filename[] = "temp-bug438633_JS_CompileFile";
          87               1 :     FILE *script_stream = tempScript.open(script_filename);
          88               1 :     CHECK(fputs(code, script_stream) != EOF);
          89               1 :     tempScript.close();
          90               1 :     JSScript *script = JS_CompileUTF8File(cx, global, script_filename);
          91               1 :     tempScript.remove();
          92               1 :     return tryScript(script);
          93                 : }
          94               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFile)
          95                 :
          96               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFile_empty)
          97                 : {
          98               2 :     TempFile tempScript;
          99                 :     static const char script_filename[] = "temp-bug438633_JS_CompileFile_empty";
         100               1 :     tempScript.open(script_filename);
         101               1 :     tempScript.close();
         102               1 :     JSScript *script = JS_CompileUTF8File(cx, global, script_filename);
         103               1 :     tempScript.remove();
         104               1 :     return tryScript(script);
         105                 : }
         106               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFile_empty)
         107                 :
         108               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFileHandle)
         109                 : {
         110               2 :     TempFile tempScript;
         111               1 :     FILE *script_stream = tempScript.open("temp-bug438633_JS_CompileFileHandle");
         112               1 :     CHECK(fputs(code, script_stream) != EOF);
         113               1 :     CHECK(fseek(script_stream, 0, SEEK_SET) != EOF);
         114                 :     return tryScript(JS_CompileUTF8FileHandle(cx, global, "temporary file",
         115               1 :                                               script_stream));
         116                 : }
         117               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFileHandle)
         118                 :
         119               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFileHandle_empty)
         120                 : {
         121               2 :     TempFile tempScript;
         122               1 :     FILE *script_stream = tempScript.open("temp-bug438633_JS_CompileFileHandle_empty");
         123                 :     return tryScript(JS_CompileUTF8FileHandle(cx, global, "empty temporary file",
         124               1 :                                               script_stream));
         125                 : }
         126               1 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFileHandle_empty)
         127                 :
         128               4 : BEGIN_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFileHandleForPrincipals)
         129                 : {
         130               2 :     TempFile tempScript;
         131               1 :     FILE *script_stream = tempScript.open("temp-bug438633_JS_CompileFileHandleForPrincipals");
         132               1 :     CHECK(fputs(code, script_stream) != EOF);
         133               1 :     CHECK(fseek(script_stream, 0, SEEK_SET) != EOF);
         134                 :     return tryScript(JS_CompileUTF8FileHandleForPrincipals(cx, global,
         135                 :                                                            "temporary file",
         136               1 :                                                            script_stream, NULL));
         137                 : }
         138               3 : END_FIXTURE_TEST(ScriptObjectFixture, bug438633_JS_CompileFileHandleForPrincipals)

Generated by: LCOV version 1.7