• P
    tests: dynamically replace dnsmasq path · 22ec6000
    Philipp Hahn 提交于
    The path to the dnsmasq binary can be configured while in the test data
    the path is hard-coded to /usr/bin/. This break the test suite if a the
    binary is located in a different location, like /usr/local/sbin/.
    
    Replace the hard coded path in the test data by a token, which is
    dynamically replaced in networkxml2argvtest with the configured path
    after the test data has been loaded.
    
    (Another option would have been to modify configure.ac to generate the
     test data during configure, but I do not know of an easy way do trick
     configure into mass-generate those test files without listing every
     single one, which I consider less flexible.)
    
    - unit-test the unit-test:
      #include <assert.h>
      #define TEST(in,token,rep,out) { char *buf = strdup(in); assert(!replaceTokens(&buf, token, rep) && !strcmp(buf, out)); free(buf); }
      TEST("", "AA", "B", "");
      TEST("A", "AA", "B", "A");
      TEST("AA", "AA", "B", "B");
      TEST("AAA", "AA", "B", "BA");
      TEST("AA", "AA", "BB", "BB");
      TEST("AA", "AA", "BBB", "BBB");
      TEST("<AA", "AA", "B", "<B");
      TEST("<AA", "AA", "BB", "<BB");
      TEST("<AA", "AA", "BBB", "<BBB");
      TEST("AA>", "AA", "B", "B>");
      TEST("AA>", "AA", "BB", "BB>");
      TEST("AA>", "AA", "BBB", "BBB>");
      TEST("<AA>", "AA", "B", "<B>");
      TEST("<AA>", "AA", "BB", "<BB>");
      TEST("<AA>", "AA", "BBB", "<BBB>");
      TEST("<AA|AA>", "AA", "B", "<B|B>");
      TEST("<AA|AA>", "AA", "BB", "<BB|BB>");
      TEST("<AA|AA>", "AA", "BBB", "<BBB|BBB>");
      TEST("<AAAA>", "AA", "B", "<BB>");
      TEST("<AAAA>", "AA", "BB", "<BBBB>");
      TEST("<AAAA>", "AA", "BBB", "<BBBBBB>");
      TEST("AAAA>", "AA", "B", "BB>");
      TEST("AAAA>", "AA", "BB", "BBBB>");
      TEST("AAAA>", "AA", "BBB", "BBBBBB>");
      TEST("<AAAA", "AA", "B", "<BB");
      TEST("<AAAA", "AA", "BB", "<BBBB");
      TEST("<AAAA", "AA", "BBB", "<BBBBBB");
      alarm(1); /* no infinite loop */
      TEST("A", "A", "A", "A");
      TEST("AA", "A", "A", "AA");
      alarm(0);
    Signed-off-by: NPhilipp Hahn <hahn@univention.de>
    22ec6000
nat-network-dns-hosts.argv 206 字节