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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
#include <test.h>
#include <cf3.defs.h>
char fqname[CF_BUFSIZE];
char uqname[CF_BUFSIZE];
char domain[CF_BUFSIZE];
void CalculateDomainName(const char *nodename, const char *dnsname,
char *fqname, size_t fqname_size,
char *uqname, size_t uqname_size,
char *domain, size_t domain_size);
static void test_fqname(void)
{
const char nodename[] = "mylaptop.example.com";
const char dnsname[] = "mylaptop.example.com";
CalculateDomainName(nodename, dnsname,
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "mylaptop.example.com");
assert_string_equal(uqname, "mylaptop");
assert_string_equal(domain, "example.com");
}
static void test_uqname(void)
{
CalculateDomainName("mylaptop", "mylaptop.example.com",
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "mylaptop.example.com");
assert_string_equal(uqname, "mylaptop");
assert_string_equal(domain, "example.com");
}
static void test_uqname2(void)
{
CalculateDomainName("user.laptop", "user.laptop.example.com",
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "user.laptop.example.com");
assert_string_equal(uqname, "user.laptop");
assert_string_equal(domain, "example.com");
}
static void test_fqname_not_really_fq(void)
{
CalculateDomainName("user.laptop", "user.laptop",
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "user.laptop");
assert_string_equal(uqname, "user");
assert_string_equal(domain, "laptop");
}
static void test_fqname_not_really_fq2(void)
{
CalculateDomainName("laptop", "laptop",
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "laptop");
assert_string_equal(uqname, "laptop");
assert_string_equal(domain, "");
}
static void test_fqname_unresolvable(void)
{
CalculateDomainName("laptop", "",
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "laptop");
assert_string_equal(uqname, "laptop");
assert_string_equal(domain, "");
}
static void test_no_names(void)
{
CalculateDomainName("", "",
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "");
assert_string_equal(uqname, "");
assert_string_equal(domain, "");
}
static void test_wrong_fqname(void)
{
CalculateDomainName("laptop", "a1006.cfengine.com",
fqname, sizeof(fqname), uqname, sizeof(uqname), domain, sizeof(domain));
assert_string_equal(fqname, "a1006.cfengine.com");
assert_string_equal(uqname, "laptop");
assert_string_equal(domain, "");
}
int main()
{
PRINT_TEST_BANNER();
const UnitTest tests[] =
{
unit_test(test_fqname),
unit_test(test_uqname),
unit_test(test_uqname2),
unit_test(test_fqname_not_really_fq),
unit_test(test_fqname_not_really_fq2),
unit_test(test_fqname_unresolvable),
unit_test(test_no_names),
unit_test(test_wrong_fqname),
};
return run_tests(tests);
}
|