File: args.cpp

package info (click to toggle)
icecc 1.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,520 kB
  • sloc: cpp: 14,058; sh: 3,006; ansic: 767; xml: 744; makefile: 231; asm: 2
file content (61 lines) | stat: -rw-r--r-- 2,141 bytes parent folder | download | duplicates (2)
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
56
57
58
59
60
61
#include "client.h"
#include <list>
#include <string>
#include <iostream>

using namespace std;

void test_run(const string &prefix, const char * const *argv, bool icerun, const string& expected) {
  list<string> extrafiles;
  CompileJob job;
  bool local = analyse_argv(argv, job, icerun, &extrafiles);
  std::stringstream str;
  str << "local:" << local;
  str << " language:" << job.language();
  str << " compiler:" << job.compilerName();
  str << " local:" << concat_args(job.localFlags());
  str << " remote:" << concat_args(job.remoteFlags());
  str << " rest:" << concat_args(job.restFlags());
  if (str.str() != expected) {
    cerr << prefix << " failed\n";
    cerr << "     got: \"" << str.str() << "\"\nexpected: \"" << expected << "\"\n";
    exit(1);
  }
}

static void test_1() {
   const char * argv[] = { "gcc", "-D", "TEST=1", "-c", "main.cpp", "-o", "main.o", 0 };
   test_run("1", argv, false, "local:0 language:C++ compiler:gcc local:'-D, TEST=1' remote:'-c' rest:''");
}

static void test_2() {
   const char * argv[] = { "gcc", "-DTEST=1", "-c", "main.cpp", "-o", "main.o", 0 };
   test_run("2", argv, false, "local:0 language:C++ compiler:gcc local:'-DTEST=1' remote:'-c' rest:''");
}

static void test_3() {
   const char * argv[] = { "clang", "-D", "TEST1=1", "-I.", "-c", "make1.cpp", "-o", "make.o", "-target", "x86_64-unknown-linux-gnu", 0};
   test_run("3", argv, false, "local:0 language:C++ compiler:clang local:'-D, TEST1=1, -I.' remote:'-c' rest:'-target, x86_64-unknown-linux-gnu'");
}

int main() {
    unsetenv( "ICECC_COLOR_DIAGNOSTICS" );
    unsetenv( "ICECC" );
    unsetenv( "ICECC_VERSION" );
    unsetenv( "ICECC_DEBUG" );
    unsetenv( "ICECC_LOGFILE" );
    unsetenv( "ICECC_REPEAT_RATE" );
    unsetenv( "ICECC_PREFERRED_HOST" );
    unsetenv( "ICECC_CC" );
    unsetenv( "ICECC_CXX" );
    unsetenv( "ICECC_CLANG_REMOTE_CPP" );
    unsetenv( "ICECC_IGNORE_UNVERIFIED" );
    unsetenv( "ICECC_EXTRAFILES" );
    unsetenv( "ICECC_COLOR_DIAGNOSTICS" );
    unsetenv( "ICECC_CARET_WORKAROUND" );
    setenv( "ICECC_REMOTE_CPP", "0", 1 );
    test_1();
    test_2();
    test_3();
    return 0;
}