mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
Add lwresd test
This commit is contained in:
49
bin/tests/system/lwresd/Makefile.in
Normal file
49
bin/tests/system/lwresd/Makefile.in
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Copyright (C) 2000 Internet Software Consortium.
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
|
# copyright notice and this permission notice appear in all copies.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
|
||||||
|
# ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||||
|
# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
|
||||||
|
# CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||||
|
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||||
|
# SOFTWARE.
|
||||||
|
|
||||||
|
srcdir = @srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
|
@BIND9_VERSION@
|
||||||
|
|
||||||
|
@BIND9_INCLUDES@
|
||||||
|
|
||||||
|
CINCLUDES = ${LWRES_INCLUDES} ${ISC_INCLUDES}
|
||||||
|
|
||||||
|
CDEFINES =
|
||||||
|
CWARNINGS =
|
||||||
|
|
||||||
|
LWRESLIBS = ${top_srcdir}/lib/lwres/liblwres.@A@
|
||||||
|
|
||||||
|
LWRESDEPLIBS = ${top_srcdir}/lib/lwres/liblwres.@A@
|
||||||
|
|
||||||
|
DEPLIBS = ${LWRESDEPLIBS}
|
||||||
|
|
||||||
|
LIBS = ${LWRESLIBS} @LIBS@
|
||||||
|
|
||||||
|
TARGETS = lwtest
|
||||||
|
|
||||||
|
OBJS = lwtest.@O@
|
||||||
|
|
||||||
|
SRCS = lwtest.c
|
||||||
|
|
||||||
|
@BIND9_MAKE_RULES@
|
||||||
|
|
||||||
|
lwtest: ${OBJS} ${DEPLIBS}
|
||||||
|
${LIBTOOL} ${CC} ${CFLAGS} -o $@ ${OBJS} ${UOBJS} ${LIBS}
|
||||||
|
|
||||||
|
clean distclean::
|
||||||
|
rm -f ${TARGETS}
|
2
bin/tests/system/lwresd/lwresd1/resolv.conf
Normal file
2
bin/tests/system/lwresd/lwresd1/resolv.conf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
nameserver 10.53.0.1
|
||||||
|
search example1.
|
280
bin/tests/system/lwresd/lwtest.c
Normal file
280
bin/tests/system/lwresd/lwtest.c
Normal file
@@ -0,0 +1,280 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2000 Internet Software Consortium.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
|
||||||
|
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||||
|
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
|
||||||
|
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||||
|
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||||
|
* SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <isc/net.h>
|
||||||
|
|
||||||
|
#include <lwres/lwres.h>
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FALSE
|
||||||
|
#define FALSE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int fails = 0;
|
||||||
|
|
||||||
|
static void
|
||||||
|
CHECK(int val, const char *msg) {
|
||||||
|
if (val != 0) {
|
||||||
|
printf("I: %s returned %d\n", msg, val);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
static void
|
||||||
|
hexdump(const char *msg, void *base, size_t len) {
|
||||||
|
unsigned char *p;
|
||||||
|
unsigned int cnt;
|
||||||
|
|
||||||
|
p = base;
|
||||||
|
cnt = 0;
|
||||||
|
|
||||||
|
printf("*** %s (%u bytes @ %p)\n", msg, len, base);
|
||||||
|
|
||||||
|
while (cnt < len) {
|
||||||
|
if (cnt % 16 == 0)
|
||||||
|
printf("%p: ", p);
|
||||||
|
else if (cnt % 8 == 0)
|
||||||
|
printf(" |");
|
||||||
|
printf(" %02x", *p++);
|
||||||
|
cnt++;
|
||||||
|
|
||||||
|
if (cnt % 16 == 0)
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cnt % 16 != 0)
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static char TESTSTRING[] = "This is a test. This is only a test. !!!";
|
||||||
|
static lwres_context_t *ctx;
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_noop() {
|
||||||
|
int ret;
|
||||||
|
lwres_lwpacket_t pkt, pkt2;
|
||||||
|
lwres_nooprequest_t nooprequest, *nooprequest2;
|
||||||
|
lwres_noopresponse_t noopresponse, *noopresponse2;
|
||||||
|
lwres_buffer_t b;
|
||||||
|
|
||||||
|
pkt.pktflags = 0;
|
||||||
|
pkt.serial = 0x11223344;
|
||||||
|
pkt.recvlength = 0x55667788;
|
||||||
|
pkt.result = 0;
|
||||||
|
|
||||||
|
nooprequest.datalength = strlen(TESTSTRING);
|
||||||
|
nooprequest.data = TESTSTRING;
|
||||||
|
ret = lwres_nooprequest_render(ctx, &nooprequest, &pkt, &b);
|
||||||
|
CHECK(ret, "lwres_nooprequest_render");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Now, parse it into a new structure.
|
||||||
|
*/
|
||||||
|
lwres_buffer_first(&b);
|
||||||
|
ret = lwres_lwpacket_parseheader(&b, &pkt2);
|
||||||
|
CHECK(ret, "lwres_lwpacket_parseheader");
|
||||||
|
|
||||||
|
nooprequest2 = NULL;
|
||||||
|
ret = lwres_nooprequest_parse(ctx, &b, &pkt2, &nooprequest2);
|
||||||
|
CHECK(ret, "lwres_nooprequest_parse");
|
||||||
|
|
||||||
|
assert(nooprequest.datalength == nooprequest2->datalength);
|
||||||
|
assert(memcmp(nooprequest.data, nooprequest2->data,
|
||||||
|
nooprequest.datalength) == 0);
|
||||||
|
|
||||||
|
lwres_nooprequest_free(ctx, &nooprequest2);
|
||||||
|
|
||||||
|
lwres_context_freemem(ctx, b.base, b.length);
|
||||||
|
b.base = NULL;
|
||||||
|
b.length = 0;
|
||||||
|
|
||||||
|
pkt.pktflags = 0;
|
||||||
|
pkt.serial = 0x11223344;
|
||||||
|
pkt.recvlength = 0x55667788;
|
||||||
|
pkt.result = 0xdeadbeef;
|
||||||
|
|
||||||
|
noopresponse.data = TESTSTRING;
|
||||||
|
ret = lwres_noopresponse_render(ctx, &noopresponse, &pkt, &b);
|
||||||
|
CHECK(ret, "lwres_noopresponse_render");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Now, parse it into a new structure.
|
||||||
|
*/
|
||||||
|
lwres_buffer_first(&b);
|
||||||
|
ret = lwres_lwpacket_parseheader(&b, &pkt2);
|
||||||
|
CHECK(ret, "lwres_lwpacket_parseheader");
|
||||||
|
|
||||||
|
noopresponse2 = NULL;
|
||||||
|
ret = lwres_noopresponse_parse(ctx, &b, &pkt2, &noopresponse2);
|
||||||
|
CHECK(ret, "lwres_noopresponse_parse");
|
||||||
|
|
||||||
|
assert(noopresponse.datalength == noopresponse2->datalength);
|
||||||
|
assert(memcmp(noopresponse.data, noopresponse2->data,
|
||||||
|
noopresponse.datalength) == 0);
|
||||||
|
|
||||||
|
lwres_noopresponse_free(ctx, &noopresponse2);
|
||||||
|
|
||||||
|
lwres_context_freemem(ctx, b.base, b.length);
|
||||||
|
b.base = NULL;
|
||||||
|
b.length = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_gabn(const char *target, int pass) {
|
||||||
|
lwres_gabnresponse_t *res;
|
||||||
|
#if 0
|
||||||
|
lwres_addr_t *addr;
|
||||||
|
unsigned int i;
|
||||||
|
char outbuf[64];
|
||||||
|
#endif
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
res = NULL;
|
||||||
|
ret = lwres_getaddrsbyname(ctx, target,
|
||||||
|
LWRES_ADDRTYPE_V4 | LWRES_ADDRTYPE_V6,
|
||||||
|
&res);
|
||||||
|
if ((pass && ret != LWRES_R_SUCCESS) ||
|
||||||
|
(!pass && ret != LWRES_R_NOTFOUND))
|
||||||
|
{
|
||||||
|
printf("I: gabn(%s) failed: %d\n", target, ret);
|
||||||
|
if (res != NULL)
|
||||||
|
lwres_gabnresponse_free(ctx, &res);
|
||||||
|
fails++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if 0
|
||||||
|
printf("Returned real name: (%u, %s)\n",
|
||||||
|
res->realnamelen, res->realname);
|
||||||
|
printf("%u aliases:\n", res->naliases);
|
||||||
|
for (i = 0 ; i < res->naliases ; i++)
|
||||||
|
printf("\t(%u, %s)\n", res->aliaslen[i], res->aliases[i]);
|
||||||
|
printf("%u addresses:\n", res->naddrs);
|
||||||
|
addr = LWRES_LIST_HEAD(res->addrs);
|
||||||
|
for (i = 0 ; i < res->naddrs ; i++) {
|
||||||
|
if (addr->family == LWRES_ADDRTYPE_V4)
|
||||||
|
(void)inet_ntop(AF_INET, addr->address,
|
||||||
|
outbuf, sizeof(outbuf));
|
||||||
|
else
|
||||||
|
(void)inet_ntop(AF_INET6, addr->address,
|
||||||
|
outbuf, sizeof(outbuf));
|
||||||
|
printf("\tAddr len %u family %08x %s\n",
|
||||||
|
addr->length, addr->family, outbuf);
|
||||||
|
addr = LWRES_LIST_NEXT(addr, link);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (res != NULL)
|
||||||
|
lwres_gabnresponse_free(ctx, &res);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_gnba(const char *target, lwres_uint32_t af, int pass) {
|
||||||
|
lwres_gnbaresponse_t *res;
|
||||||
|
int ret;
|
||||||
|
#if 0
|
||||||
|
unsigned int i;
|
||||||
|
#endif
|
||||||
|
unsigned char addrbuf[16];
|
||||||
|
unsigned int len;
|
||||||
|
|
||||||
|
if (af == LWRES_ADDRTYPE_V4) {
|
||||||
|
len = 4;
|
||||||
|
ret = inet_pton(AF_INET, target, addrbuf);
|
||||||
|
assert(ret == 1);
|
||||||
|
} else {
|
||||||
|
len = 16;
|
||||||
|
ret = inet_pton(AF_INET6, target, addrbuf);
|
||||||
|
assert(ret == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
res = NULL;
|
||||||
|
ret = lwres_getnamebyaddr(ctx, af, len, addrbuf, &res);
|
||||||
|
if ((pass && ret != LWRES_R_SUCCESS) ||
|
||||||
|
(!pass && ret != LWRES_R_NOTFOUND))
|
||||||
|
{
|
||||||
|
printf("I: gnba(%s) failed: %d\n", target, ret);
|
||||||
|
if (res != NULL)
|
||||||
|
lwres_gnbaresponse_free(ctx, &res);
|
||||||
|
fails++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if 0
|
||||||
|
printf("Returned real name: (%u, %s)\n",
|
||||||
|
res->realnamelen, res->realname);
|
||||||
|
printf("%u aliases:\n", res->naliases);
|
||||||
|
for (i = 0 ; i < res->naliases ; i++)
|
||||||
|
printf("\t(%u, %s)\n", res->aliaslen[i], res->aliases[i]);
|
||||||
|
#endif
|
||||||
|
if (res != NULL)
|
||||||
|
lwres_gnbaresponse_free(ctx, &res);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main() {
|
||||||
|
lwres_result_t ret;
|
||||||
|
|
||||||
|
lwres_udp_port = 9210;
|
||||||
|
|
||||||
|
ret = lwres_context_create(&ctx, NULL, NULL, NULL, 0);
|
||||||
|
CHECK(ret, "lwres_context_create");
|
||||||
|
|
||||||
|
ret = lwres_conf_parse(ctx, "resolv.conf");
|
||||||
|
CHECK(ret, "lwres_conf_parse");
|
||||||
|
|
||||||
|
test_noop();
|
||||||
|
|
||||||
|
test_gabn("a.example1", TRUE);
|
||||||
|
test_gabn("a.example1.", TRUE);
|
||||||
|
test_gabn("a.example2", TRUE);
|
||||||
|
test_gabn("a.example2.", TRUE);
|
||||||
|
test_gabn("a.example3", FALSE);
|
||||||
|
test_gabn("a.example3.", FALSE);
|
||||||
|
test_gabn("a", TRUE);
|
||||||
|
test_gabn("a.", FALSE);
|
||||||
|
|
||||||
|
test_gabn("b.example1", TRUE);
|
||||||
|
test_gabn("b.example1.", TRUE);
|
||||||
|
test_gabn("b.example2", TRUE);
|
||||||
|
test_gabn("b.example2.", TRUE);
|
||||||
|
test_gabn("b.example3", FALSE);
|
||||||
|
test_gabn("b.example3.", FALSE);
|
||||||
|
test_gabn("b", TRUE);
|
||||||
|
test_gabn("b.", FALSE);
|
||||||
|
|
||||||
|
test_gabn("d.example1", FALSE);
|
||||||
|
|
||||||
|
test_gabn("x", TRUE);
|
||||||
|
test_gabn("x.", TRUE);
|
||||||
|
|
||||||
|
test_gnba("10.10.10.1", LWRES_ADDRTYPE_V4, TRUE);
|
||||||
|
test_gnba("10.10.10.17", LWRES_ADDRTYPE_V4, FALSE);
|
||||||
|
test_gnba("0123:4567:89ab:cdef:0123:4567:89ab:cdef",
|
||||||
|
LWRES_ADDRTYPE_V6, TRUE);
|
||||||
|
test_gnba("0123:4567:89ab:cdef:0123:4567:89ab:cde0",
|
||||||
|
LWRES_ADDRTYPE_V6, FALSE);
|
||||||
|
|
||||||
|
return (fails);
|
||||||
|
}
|
13
bin/tests/system/lwresd/ns1/10.10.10.in-addr.arpa.db
Normal file
13
bin/tests/system/lwresd/ns1/10.10.10.in-addr.arpa.db
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
@ IN SOA mname1. . (
|
||||||
|
2000062001 ; serial
|
||||||
|
20 ; refresh (20 seconds)
|
||||||
|
20 ; retry (20 seconds)
|
||||||
|
1814400 ; expire (3 weeks)
|
||||||
|
3600 ; minimum (1 hour)
|
||||||
|
)
|
||||||
|
NS ns
|
||||||
|
ns A 10.53.0.1
|
||||||
|
|
||||||
|
1 PTR test1.example
|
||||||
|
2 PTR test2.example
|
15
bin/tests/system/lwresd/ns1/example1.db
Normal file
15
bin/tests/system/lwresd/ns1/example1.db
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
@ IN SOA mname1. . (
|
||||||
|
2000062001 ; serial
|
||||||
|
20 ; refresh (20 seconds)
|
||||||
|
20 ; retry (20 seconds)
|
||||||
|
1814400 ; expire (3 weeks)
|
||||||
|
3600 ; minimum (1 hour)
|
||||||
|
)
|
||||||
|
NS ns
|
||||||
|
ns A 10.53.0.1
|
||||||
|
|
||||||
|
a A 10.0.1.1
|
||||||
|
b A6 64 ::ffff:ffff:ffff:ffff c
|
||||||
|
c A6 0 eeee:eeee:eeee:eeee::
|
||||||
|
d A6 64 ::ffff:ffff:ffff:ffff e
|
14
bin/tests/system/lwresd/ns1/example2.db
Normal file
14
bin/tests/system/lwresd/ns1/example2.db
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
@ IN SOA mname1. . (
|
||||||
|
2000062001 ; serial
|
||||||
|
20 ; refresh (20 seconds)
|
||||||
|
20 ; retry (20 seconds)
|
||||||
|
1814400 ; expire (3 weeks)
|
||||||
|
3600 ; minimum (1 hour)
|
||||||
|
)
|
||||||
|
NS ns
|
||||||
|
ns A 10.53.0.1
|
||||||
|
|
||||||
|
a A 10.0.2.1
|
||||||
|
b A6 64 ::ffff:ffff:ffff:ffff c
|
||||||
|
c A6 0 eeee:eeee:eeee:eeee::
|
12
bin/tests/system/lwresd/ns1/ip6.int.db
Normal file
12
bin/tests/system/lwresd/ns1/ip6.int.db
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
@ IN SOA mname1. . (
|
||||||
|
2000062001 ; serial
|
||||||
|
20 ; refresh (20 seconds)
|
||||||
|
20 ; retry (20 seconds)
|
||||||
|
1814400 ; expire (3 weeks)
|
||||||
|
3600 ; minimum (1 hour)
|
||||||
|
)
|
||||||
|
NS ns
|
||||||
|
ns A 10.53.0.1
|
||||||
|
|
||||||
|
f.e.d.c.b.a.9.8.7.6.5.4.3.2.1.0.f.e.d.c.b.a.9.8.7.6.5.4.3.2.1.0 PTR test.example.
|
35
bin/tests/system/lwresd/ns1/named.conf
Normal file
35
bin/tests/system/lwresd/ns1/named.conf
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
options {
|
||||||
|
query-source address 10.53.0.1;
|
||||||
|
port 5300;
|
||||||
|
directory ".";
|
||||||
|
pid-file "named.pid";
|
||||||
|
listen-on { 10.53.0.1; };
|
||||||
|
listen-on-v6 {none;};
|
||||||
|
recursion no;
|
||||||
|
notify no;
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "." {
|
||||||
|
type master;
|
||||||
|
file "root.db";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "example1." {
|
||||||
|
type master;
|
||||||
|
file "example1.db";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "example2." {
|
||||||
|
type master;
|
||||||
|
file "example2.db";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "10.10.10.in-addr.arpa." {
|
||||||
|
type master;
|
||||||
|
file "10.10.10.in-addr.arpa.db";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "ip6.int." {
|
||||||
|
type master;
|
||||||
|
file "ip6.int.db";
|
||||||
|
};
|
16
bin/tests/system/lwresd/ns1/root.db
Normal file
16
bin/tests/system/lwresd/ns1/root.db
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
$TTL 300
|
||||||
|
. IN SOA gson.nominum.com. a.root.servers.nil. (
|
||||||
|
2000042100 ; serial
|
||||||
|
600 ; refresh
|
||||||
|
600 ; retry
|
||||||
|
1200 ; expire
|
||||||
|
600 ; minimum
|
||||||
|
)
|
||||||
|
. NS a.root-servers.nil.
|
||||||
|
a.root-servers.nil. A 10.53.0.1
|
||||||
|
|
||||||
|
example1. NS ns.example1.
|
||||||
|
ns.example1. A 10.53.0.2
|
||||||
|
example2. NS ns.example2.
|
||||||
|
ns.example2. A 10.53.0.2
|
||||||
|
x A 10.1.10.1
|
3
bin/tests/system/lwresd/resolv.conf
Normal file
3
bin/tests/system/lwresd/resolv.conf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
nameserver 10.53.0.1
|
||||||
|
search example1.
|
||||||
|
ndots 1
|
36
bin/tests/system/lwresd/tests.sh
Normal file
36
bin/tests/system/lwresd/tests.sh
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2000 Internet Software Consortium.
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
|
# copyright notice and this permission notice appear in all copies.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
|
||||||
|
# ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||||
|
# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
|
||||||
|
# CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||||
|
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||||
|
# SOFTWARE.
|
||||||
|
|
||||||
|
SYSTEMTESTTOP=..
|
||||||
|
. $SYSTEMTESTTOP/conf.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Perform tests
|
||||||
|
#
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
status=0;
|
||||||
|
./lwtest
|
||||||
|
status=`expr $status + $?`
|
||||||
|
|
||||||
|
|
||||||
|
if [ $status != 0 ]; then
|
||||||
|
echo "R:FAIL"
|
||||||
|
else
|
||||||
|
echo "R:PASS"
|
||||||
|
fi
|
Reference in New Issue
Block a user