File: launcher_test.c

package info (click to toggle)
cmake 4.2.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 152,336 kB
  • sloc: ansic: 403,896; cpp: 303,920; sh: 4,105; python: 3,583; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 111; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (55 lines) | stat: -rw-r--r-- 1,907 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <string.h>

/* Having this as comment lets gtest_add_tests recognizes the test we fake
   here without requiring googletest
TEST_F( launcher_test, test1 )
{
}
*/

char const gtest_output_json_flag_prefix[] = "--gtest_output=json:";
char const json_output[] = "{\n"
                           "    \"tests\": 1,\n"
                           "    \"name\": \"AllTests\",\n"
                           "    \"testsuites\": [\n"
                           "        {\n"
                           "            \"name\": \"launcher_test\",\n"
                           "            \"tests\": 1,\n"
                           "            \"testsuite\": [\n"
                           "                { \"name\": \"test1\", \"file\": "
                           "\"file.cpp\", \"line\": 42 }\n"
                           "            ]\n"
                           "        }\n"
                           "    ]\n"
                           "}";

int main(int argc, char** argv)
{
  /* Note: Launcher.cmake doesn't actually depend on Google Test as such;
   * it only requires that we produces output in the expected format when
   * invoked with --gtest_list_tests. Thus, we fake that here. This allows us
   * to test the module without actually needing Google Test.  */
  char* filepath;
  FILE* ofile;

  if (argc > 2 && strcmp(argv[1], "--gtest_list_tests") == 0 &&
      strncmp(argv[2], gtest_output_json_flag_prefix,
              strlen(gtest_output_json_flag_prefix)) == 0) {
    printf("launcher_test.\n");
    printf("  test1\n");
    filepath = strchr(argv[2], ':') + 1;
    /* The full file path is passed */
    ofile = fopen(filepath, "wb");

    if (!ofile) {
      fprintf(stderr, "Failed to create file: %s\n", filepath);
      return 1;
    }
    fprintf(ofile, "%s", json_output);
    fclose(ofile);
  }

  printf("launcher_test.test1\n");
  return 0;
}