Exemplo n.º 1
0
int main()
{
    expected_out_open();
#ifdef HAVE_EXECV
    fork_fun(call_execv);
    expected_out("cc", "execv.c");
#endif
#ifdef HAVE_EXECVE
    fork_fun(call_execve);
    expected_out("/usr/bin/cc", "execve.c");
#endif
#ifdef HAVE_EXECVP
    fork_fun(call_execvp);
    expected_out("cc", "execvp.c");
#endif
#ifdef HAVE_EXECVP2
    fork_fun(call_execvP);
    expected_out("cc", "execv_p.c");
#endif
#ifdef HAVE_EXECVPE
    fork_fun(call_execvpe);
    expected_out("/usr/bin/cc", "execvpe.c");
#endif
#ifdef HAVE_EXECL
    fork_fun(call_execl);
    expected_out("cc", "execl.c");
#endif
#ifdef HAVE_EXECLP
    fork_fun(call_execlp);
    expected_out("cc", "execlp.c");
#endif
#ifdef HAVE_EXECLE
    fork_fun(call_execle);
    expected_out("/usr/bin/cc", "execle.c");
#endif
#ifdef HAVE_POSIX_SPAWN
    call_posix_spawn();
    expected_out("cc", "posix_spawn.c");
#endif
#ifdef HAVE_POSIX_SPAWNP
    call_posix_spawnp();
    expected_out("cc", "posix_spawnp.c");
#endif
#ifdef HAVE_EXECLE
    fork_fun(call_execle_and_printenv);
#endif
    expected_out_close();
    return 0;
}
Exemplo n.º 2
0
TEST_F(JsonCppSerializerTest, SerializeObjectValues_ObjectInsideArrayValues)
{
  const std::string TEST_NAME = "SerializeObjectValues_ObjectInsideArrayValues";
  const std::string EXPECTED_JSON_OUTPUT =
    "{\"root\":{\"cards\":[{\"obj1\":{\"id\":5,\"level\":4,\"name\":\"Diablos\",\"owner\":false,\"ranks\":[4,8,5,10]},\"obj2\":{\"id\":0,\"level\":1,\"name\":\"Geezard\",\"owner\":true,\"ranks\":[5,3,1,3]}},{\"obj1\":{\"id\":5,\"level\":4,\"name\":\"Diablos\",\"owner\":false,\"ranks\":[4,8,5,10]},\"obj2\":{\"id\":0,\"level\":1,\"name\":\"Geezard\",\"owner\":true,\"ranks\":[5,3,1,3]}}]}}\n";

  Value cards_object;
  Value diablos_obj, geezard_obj;

  diablos_obj["id"] = 5u;
  diablos_obj["name"] = "Diablos";
  diablos_obj["level"] = 4u;
  diablos_obj["ranks"][0] = 4u;
  diablos_obj["ranks"][1] = 8u;
  diablos_obj["ranks"][2] = 5u;
  diablos_obj["ranks"][3] = 10u;
  diablos_obj["owner"] = false;

  geezard_obj["id"] = 0u;
  geezard_obj["name"] = "Geezard";
  geezard_obj["level"] = 1u;
  geezard_obj["ranks"][0] = 5u;
  geezard_obj["ranks"][1] = 3u;
  geezard_obj["ranks"][2] = 1u;
  geezard_obj["ranks"][3] = 3u;
  geezard_obj["owner"] = true;

  cards_object["root"]["cards"][0]["obj1"] = diablos_obj;
  cards_object["root"]["cards"][0]["obj2"] = geezard_obj;

  cards_object["root"]["cards"][1]["obj1"] = diablos_obj;
  cards_object["root"]["cards"][1]["obj2"] = geezard_obj;

  expected_out(cards_object, EXPECTED_JSON_OUTPUT, TEST_NAME);
}
Exemplo n.º 3
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_ComplexArrayValues )
{
  Value o;
  Value obj;
  Value arr;
  Value obj2;

  obj["name"] = "Geezard"; // Object node

  // Array node
  obj["ranks"][0] = 1u;
  obj["ranks"][1] = 5u;
  obj["ranks"][2] = 3u;
  obj["ranks"][3] = 1u;
  obj["ranks"][4] = 3u;
  obj["ranks"][5] = true;

  arr["__ranks"].push_back( obj ); // Array node

  obj2["name"] = "Geezard"; // Under an Object node
  obj2["__array"].push_back( arr ); // Array node

  o["root"]["cards"] = obj2;

  expected_out( o, "{\"root\":{\"cards\":{\"__array\":[{\"__ranks\":[{\"name\":\"Geezard\",\"ranks\":[1,5,3,1,3,true]}]}],\"name\":\"Geezard\"}}}\n" );
}
Exemplo n.º 4
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_UsignedIntegerValue )
{
  Value o;
  o["obj"]["key"] = 1u;

  expected_out( o, "{\"obj\":{\"key\":1}}\n" );
}
Exemplo n.º 5
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_ComplexObjectValues )
{
  Value o;
  Value obj1;
  Value obj2;
  Value obj3;
  Value obj4;

  obj1["id"] = 0u;
  obj1["name"] = "Geezard";
  o["root"]["cards"]["obj1"] = obj1;

  obj2["id"] = 1u;
  obj2["name"] = "Bite Bug";
  o["root"]["cards"]["obj2"] = obj2;

  obj3["id"] = 2u;
  obj3["name"] = "MiniMog";
  o["root"]["cards"]["obj3"]["obj4"] = obj3;

  obj4["id"] = 3u;
  obj4["name"] = "Chicobo";
  o["root"]["cards"]["obj4"] = obj4;

  expected_out( o, "{\"root\":{\"cards\":{\"obj1\":{\"id\":0,\"name\":\"Geezard\"},\"obj2\":{\"id\":1,\"name\":\"Bite Bug\"},\"obj3\":{\"obj4\":{\"id\":2,\"name\":\"MiniMog\"}},\"obj4\":{\"id\":3,\"name\":\"Chicobo\"}}}}\n" );
}
Exemplo n.º 6
0
TEST_F( JsonCppSerializerTest, SerializeArrayValues_UsignedIntegerValue )
{
  Value o;
  o[0]["key"] = 1u;

  expected_out( o, "[{\"key\":1}]\n" );
}
Exemplo n.º 7
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_BooleanValue )
{
  Value o;
  o["obj"]["key1"] = true;
  o["obj"]["key2"] = false;

  expected_out( o, "{\"obj\":{\"key1\":true,\"key2\":false}}\n" );
}
Exemplo n.º 8
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_StringValue )
{
  Value o;
  o["obj"]["key1"] = "Hello";
  o["obj"]["key2"] = "...there!";

  expected_out( o, "{\"obj\":{\"key1\":\"Hello\",\"key2\":\"...there!\"}}\n" );
}
Exemplo n.º 9
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_RealNumberValue )
{
  Value o;
  o["obj"]["key1"] = 8.245;
  o["obj"]["key2"] = 8.24f;

  expected_out( o, "{\"obj\":{\"key1\":8.244999999999999,\"key2\":8.239999771118164}}\n" );
}
Exemplo n.º 10
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_NullValue )
{
  Value o;

  o["obj"]["key"] = Value();

  expected_out( o, "{\"obj\":{\"key\":null}}\n" );
}
Exemplo n.º 11
0
TEST_F( JsonCppSerializerTest, SerializeArrayValues_BooleanValue )
{
  Value o;
  o[0]["key1"] = true;
  o[1]["key2"] = false;

  expected_out( o, "[{\"key1\":true},{\"key2\":false}]\n" );
}
Exemplo n.º 12
0
TEST_F( JsonCppSerializerTest, SerializeArrayValues_StringValue )
{
  Value o;
  o[0]["key1"] = "Hello";
  o[1]["key2"] = "...there!";

  expected_out( o, "[{\"key1\":\"Hello\"},{\"key2\":\"...there!\"}]\n" );
}
Exemplo n.º 13
0
TEST_F( JsonCppSerializerTest, SerializeArrayValues_RealNumberValue )
{
  Value o;
  o[0]["key1"] = 8.245;
  o[1]["key2"] = 8.24f;

  expected_out( o, "[{\"key1\":8.244999999999999},{\"key2\":8.239999771118164}]\n" );
}
Exemplo n.º 14
0
TEST_F( JsonCppSerializerTest, SerializeArrayValues_NullValue )
{
  Value o;

  o[0]["key"] = Value();

  expected_out( o, "[{\"key\":null}]\n" );
}
Exemplo n.º 15
0
TEST_F( JsonCppSerializerTest, SerializeObjectValuesSanity2 )
{
  Value o;

  o = sanity2_out();

  expected_out( o, "{\"object1\":{\"boolean1\":false,\"null\":null,\"response1\":\"Yeah buddy!\"},\"object2\":{\"array2\":[0,2,3,\"hax\"],\"boolean2\":true,\"deep_object\":{\"h\":{\"boolean\":false,\"deep_deep_deep_object\":{\"deep_deep_deep_array\":[\"string_1\",\"string_2\"],\"h\":240,\"w\":420},\"key\":\"pair\",\"null\":null},\"w\":-4},\"response2\":\"Light weight!\"},\"object3\":[{\"cmd\":[\"hax\",\"gibson\"],\"deep_object\":{\"h\":{\"boolean\":false,\"deep_deep_deep_object\":{\"deep_deep_deep_array\":[\"string_1\",\"string_2\"],\"h\":240,\"w\":420},\"key\":\"pair\",\"null\":null},\"w\":-4}}],\"object5\":[\"hello, there!\",-1,false]}\n" );
}
Exemplo n.º 16
0
void call_execlp() {
    char *const file = "execlp.c";
    char *const compiler = "cc";

    expected_out(file);
    create_source(file);

    FORK(execlp(compiler, compiler, "-c", file, (char *)0);)
}
Exemplo n.º 17
0
void call_execl() {
    char *const file = "execl.c";
    char *const compiler = "/usr/bin/cc";

    expected_out(file);
    create_source(file);

    FORK(execl(compiler, "cc", "-c", file, (char *)0);)
}
Exemplo n.º 18
0
void call_execle() {
    char *const file = "execle.c";
    char *const compiler = "/usr/bin/cc";
    char *const envp[] = {"THIS=THAT", 0};

    expected_out(file);
    create_source(file);

    FORK(execle(compiler, compiler, "-c", file, (char *)0, envp);)
}
Exemplo n.º 19
0
void call_execvP() {
    char *const file = "execv_p.c";
    char *const compiler = "cc";
    char *const argv[] = {compiler, "-c", file, 0};

    expected_out(file);
    create_source(file);

    FORK(execvP(compiler, _PATH_DEFPATH, argv);)
}
Exemplo n.º 20
0
void call_execv() {
    char *const file = "execv.c";
    char *const compiler = "/usr/bin/cc";
    char *const argv[] = {"cc", "-c", file, 0};

    expected_out(file);
    create_source(file);

    FORK(execv(compiler, argv);)
}
Exemplo n.º 21
0
void call_execvpe() {
    char *const file = "execvpe.c";
    char *const compiler = "cc";
    char *const argv[] = {"/usr/bin/cc", "-c", file, 0};
    char *const envp[] = {"THIS=THAT", 0};

    expected_out(file);
    create_source(file);

    FORK(execvpe(compiler, argv, envp);)
}
Exemplo n.º 22
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_ArrayValues )
{
  Value o;
  o["obj"]["arr"][0] = Value::null;
  o["obj"]["arr"][1] = "Yeah, buddy!";
  o["obj"]["arr"][2] = -8;
  o["obj"]["arr"][3] = 10u;
  o["obj"]["arr"][4] = false;

  expected_out( o, "{\"obj\":{\"arr\":[null,\"Yeah, buddy!\",-8,10,false]}}\n" );
}
Exemplo n.º 23
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_SimpleObjectValues )
{
  Value o;

  o["obj"]["id"] = 5u;
  o["obj"]["name"] = "Diablos";
  o["obj"]["level"] = 4u;
  o["obj"]["owner"] = false;

  expected_out( o, "{\"obj\":{\"id\":5,\"level\":4,\"name\":\"Diablos\",\"owner\":false}}\n" );
}
Exemplo n.º 24
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_ArrayValuesInObjectValues )
{
  Value o;

  o["obj"]["id"] = 5u;
  o["obj"]["name"] = "Diablos";
  o["obj"]["level"] = 4u;
  o["obj"]["ranks"][0] = 4u;
  o["obj"]["ranks"][1] = 8u;
  o["obj"]["ranks"][2] = 5u;
  o["obj"]["ranks"][3] = 10u;
  o["obj"]["owner"] = false;

  expected_out( o, "{\"obj\":{\"id\":5,\"level\":4,\"name\":\"Diablos\",\"owner\":false,\"ranks\":[4,8,5,10]}}\n" );
}
Exemplo n.º 25
0
void call_posix_spawnp() {
    char *const file = "posix_spawnp.c";
    char *const compiler = "cc";
    char *const argv[] = {compiler, "-c", file, 0};

    expected_out(file);
    create_source(file);

    pid_t child;
    if (0 != posix_spawnp(&child, "cc", 0, 0, argv, get_environ())) {
        perror("posix_spawnp");
        exit(EXIT_FAILURE);
    }
    wait_for(child);
}
Exemplo n.º 26
0
TEST_F( JsonCppSerializerTest, SerializeArrayValues_MultipleSimpleObjectValues )
{
  Value o;

  o[0]["id"] = 5u;
  o[0]["name"] = "Diablos";
  o[0]["level"] = 4u;
  o[0]["owner"] = false;

  o[1]["id"] = 99u;
  o[1]["name"] = "Squall";
  o[1]["level"] = 4u;
  o[1]["owner"] = Value();

  o[2]["id"] = 55u;
  o[2]["name"] = "Zell";
  o[2]["level"] = 2u;
  o[2]["owner"] = true;

  o[3] = Value();

  expected_out( o, "[{\"id\":5,\"level\":4,\"name\":\"Diablos\",\"owner\":false},{\"id\":99,\"level\":4,\"name\":\"Squall\",\"owner\":null},{\"id\":55,\"level\":2,\"name\":\"Zell\",\"owner\":true}]\n" );
}
Exemplo n.º 27
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_MultipleSimpleObjectValues )
{
  Value o;

  o["obj1"]["id"] = 5u;
  o["obj1"]["name"] = "Diablos";
  o["obj1"]["level"] = 4u;
  o["obj1"]["owner"] = false;

  o["obj2"]["id"] = 99u;
  o["obj2"]["name"] = "Squall";
  o["obj2"]["level"] = 4u;
  o["obj2"]["owner"] = Value();

  o["obj3"]["id"] = 55u;
  o["obj3"]["name"] = "Zell";
  o["obj3"]["level"] = 2u;
  o["obj3"]["owner"] = true;

  o["obj4"] = Value();

  expected_out( o, "{\"obj1\":{\"id\":5,\"level\":4,\"name\":\"Diablos\",\"owner\":false},\"obj2\":{\"id\":99,\"level\":4,\"name\":\"Squall\",\"owner\":null},\"obj3\":{\"id\":55,\"level\":2,\"name\":\"Zell\",\"owner\":true}}\n" );
}
Exemplo n.º 28
0
TEST_F( JsonCppSerializerTest, SerializeObjectValues_MultipleArrayValuesInObjectValues )
{
  Value o;

  o["obj1"]["id"] = 5u;
  o["obj1"]["name"] = "Diablos";
  o["obj1"]["level"] = 4u;
  o["obj1"]["ranks"][0] = 4u;
  o["obj1"]["ranks"][1] = 8u;
  o["obj1"]["ranks"][2] = 5u;
  o["obj1"]["ranks"][3] = 10u;
  o["obj1"]["owner"] = false;

  o["obj2"]["id"] = 0u;
  o["obj2"]["name"] = "Geezard";
  o["obj2"]["level"] = 1u;
  o["obj2"]["ranks"][0] = 5u;
  o["obj2"]["ranks"][1] = 3u;
  o["obj2"]["ranks"][2] = 1u;
  o["obj2"]["ranks"][3] = 3u;
  o["obj2"]["owner"] = true;

  expected_out( o, "{\"obj1\":{\"id\":5,\"level\":4,\"name\":\"Diablos\",\"owner\":false,\"ranks\":[4,8,5,10]},\"obj2\":{\"id\":0,\"level\":1,\"name\":\"Geezard\",\"owner\":true,\"ranks\":[5,3,1,3]}}\n" );
}
Exemplo n.º 29
0
// FIXME: Output should be just a newline, I think.
TEST_F( JsonCppSerializerTest, SerializeNullValue )
{
  Value o;

  expected_out( o, "null\n" );
}