mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-22 09:57:20 +00:00
[master] ATF usage and documentation cleaned up
Merges in rt38619
This commit is contained in:
parent
112d76f60c
commit
9a111ee803
1
.gitignore
vendored
1
.gitignore
vendored
@ -28,3 +28,4 @@ server/tests/legacy_unittests
|
|||||||
server/tests/load_bal_unittests
|
server/tests/load_bal_unittests
|
||||||
server/tests/test-suite.log
|
server/tests/test-suite.log
|
||||||
tests/libt_api.a
|
tests/libt_api.a
|
||||||
|
tests/unittest.sh
|
||||||
|
@ -224,6 +224,7 @@ distcleancheck_listfiles = find . -type f -print
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
95
RELNOTES
95
RELNOTES
@ -60,6 +60,21 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
the issue.
|
the issue.
|
||||||
[ISC-Bugs #37780]
|
[ISC-Bugs #37780]
|
||||||
|
|
||||||
|
- Unit test execution now uses a path augmented during configuration
|
||||||
|
processing of the --with-atf option to locate ATF runtime tools, atf-run
|
||||||
|
and atf-report. For most installations of ATF, this should alleviate the
|
||||||
|
need to manually include them in the PATH, as was formerly required.
|
||||||
|
If the configure script cannot locate the tools it will emit a warning,
|
||||||
|
informing the user that the tools must be in the PATH when running unit
|
||||||
|
tests.
|
||||||
|
Secondly, please note that "make check" will now exit with a failure status
|
||||||
|
code (non-zero) if one or more unit tests fail. This means that invoking
|
||||||
|
"make check" from an upper level directory will cause the make process to
|
||||||
|
STOP after the first test subdirectory with failed test(s). To force all
|
||||||
|
tests in all subdirectories to run, regardless of individual test outcome,
|
||||||
|
use the command "make -k check".
|
||||||
|
[ISC-Bugs #38619]
|
||||||
|
|
||||||
Changes since 4.3.1
|
Changes since 4.3.1
|
||||||
|
|
||||||
- Corrected parser's right brace matching when a statement contains an error.
|
- Corrected parser's right brace matching when a statement contains an error.
|
||||||
@ -281,7 +296,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- Tidy up several small tickets.
|
- Tidy up several small tickets.
|
||||||
Correct parsing of DUID from config file, previously the LL type
|
Correct parsing of DUID from config file, previously the LL type
|
||||||
was put in the wrong place in the DUID string.
|
was put in the wrong place in the DUID string.
|
||||||
[ISC-Bugs #20962]
|
[ISC-Bugs #20962]
|
||||||
Add code to parse "do-forward-updates" as well as "do-forward-update"
|
Add code to parse "do-forward-updates" as well as "do-forward-update"
|
||||||
Thanks to Jiri Popelka at Red Hat.
|
Thanks to Jiri Popelka at Red Hat.
|
||||||
[ISC-Bugs #31328]
|
[ISC-Bugs #31328]
|
||||||
@ -655,7 +670,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
in dhcpd - based on a patch from David Cantrell at Red Hat.
|
in dhcpd - based on a patch from David Cantrell at Red Hat.
|
||||||
[ISC-Bugs #20039] Correct some error messages in dhcpd.c
|
[ISC-Bugs #20039] Correct some error messages in dhcpd.c
|
||||||
[ISC-Bugs #20070] Better range check on values when creating a DHCID.
|
[ISC-Bugs #20070] Better range check on values when creating a DHCID.
|
||||||
[ISC-Bugs #20198] Avoid writing past the end of the field when adding
|
[ISC-Bugs #20198] Avoid writing past the end of the field when adding
|
||||||
overly long file or server names to a packet and add a log message
|
overly long file or server names to a packet and add a log message
|
||||||
if the configuration supplied overly long names for these fields.
|
if the configuration supplied overly long names for these fields.
|
||||||
Thanks to Martin Pala.
|
Thanks to Martin Pala.
|
||||||
@ -732,7 +747,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
listed as a failover peer would cause the server to become
|
listed as a failover peer would cause the server to become
|
||||||
non-responsive. Thanks to a report from Brad Bendily, brad@bendily.com.
|
non-responsive. Thanks to a report from Brad Bendily, brad@bendily.com.
|
||||||
[ISC-Bugs #22679]
|
[ISC-Bugs #22679]
|
||||||
CERT: VU#159528 CVE: CVE-2010-3616
|
CERT: VU#159528 CVE: CVE-2010-3616
|
||||||
|
|
||||||
- Don't pass the ISC_R_INPROGRESS status to the omapi signal handlers.
|
- Don't pass the ISC_R_INPROGRESS status to the omapi signal handlers.
|
||||||
Passing it through to the handlers caused the omshell program to fail
|
Passing it through to the handlers caused the omshell program to fail
|
||||||
@ -764,7 +779,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
crashing on an assert failure. Also retag the lease as active
|
crashing on an assert failure. Also retag the lease as active
|
||||||
and reset its timeout value.
|
and reset its timeout value.
|
||||||
[ISC-Bugs #21921]
|
[ISC-Bugs #21921]
|
||||||
|
|
||||||
- Removed the restriction on using IPv6 addresses in IPv4 mode. This
|
- Removed the restriction on using IPv6 addresses in IPv4 mode. This
|
||||||
allows IPv4 options which contain IPv6 addresses to be specified. For
|
allows IPv4 options which contain IPv6 addresses to be specified. For
|
||||||
example the 6rd option can be specified and used like this:
|
example the 6rd option can be specified and used like this:
|
||||||
@ -776,7 +791,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
|
|
||||||
- Handle some DDNS corner cases better. Maintain the DDNS transaction
|
- Handle some DDNS corner cases better. Maintain the DDNS transaction
|
||||||
information when updating a lease and cancel any existing transactions
|
information when updating a lease and cancel any existing transactions
|
||||||
when removing the ddns information.
|
when removing the ddns information.
|
||||||
[ISC-Bugs #23103]
|
[ISC-Bugs #23103]
|
||||||
|
|
||||||
- Some fixes for LDAP
|
- Some fixes for LDAP
|
||||||
@ -806,12 +821,12 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
|
|
||||||
- 'dhclient' no longer waits a random interval after first starting up to
|
- 'dhclient' no longer waits a random interval after first starting up to
|
||||||
begin in the INIT state. This conforms to RFC 2131, but elects not to
|
begin in the INIT state. This conforms to RFC 2131, but elects not to
|
||||||
implement a 'SHOULD' direction in section 4.1. The goal of this change
|
implement a 'SHOULD' direction in section 4.1. The goal of this change
|
||||||
is to start up faster. [ISC-Bugs #19660]
|
is to start up faster. [ISC-Bugs #19660]
|
||||||
|
|
||||||
- Added 'initial-delay' parameter that specifies maximum amount of time
|
- Added 'initial-delay' parameter that specifies maximum amount of time
|
||||||
before client goes to the INIT state. The default value is 0. In previous
|
before client goes to the INIT state. The default value is 0. In previous
|
||||||
versions of the code client could wait up to 5 seconds. The old behavior
|
versions of the code client could wait up to 5 seconds. The old behavior
|
||||||
may be restored by using 'initial-delay 5;' in the client config file.
|
may be restored by using 'initial-delay 5;' in the client config file.
|
||||||
[ISC-Bugs #19660]
|
[ISC-Bugs #19660]
|
||||||
|
|
||||||
@ -851,7 +866,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
configuration parameter, in the case of an agent not covered by a configured
|
configuration parameter, in the case of an agent not covered by a configured
|
||||||
subnet the root configuration area is examined. Server now also returns
|
subnet the root configuration area is examined. Server now also returns
|
||||||
vendor-class-id option, if client sent it. [ISC-Bugs #21094]
|
vendor-class-id option, if client sent it. [ISC-Bugs #21094]
|
||||||
|
|
||||||
- Documentation fixes
|
- Documentation fixes
|
||||||
[ISC-Bugs #17959] add text to AIX section describing how to have it send
|
[ISC-Bugs #17959] add text to AIX section describing how to have it send
|
||||||
responses to the all-ones address.
|
responses to the all-ones address.
|
||||||
@ -866,8 +881,8 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- Relay now properly logs that packet was received over interface without
|
- Relay now properly logs that packet was received over interface without
|
||||||
global IPv6 address [ISC-Bugs #24070]
|
global IPv6 address [ISC-Bugs #24070]
|
||||||
|
|
||||||
- Linux Packet Filter interface improvement. sockaddr_pkt structure is used,
|
- Linux Packet Filter interface improvement. sockaddr_pkt structure is used,
|
||||||
rather than sockaddr. Packet ethertype is now forced to ETH_P_IP.
|
rather than sockaddr. Packet ethertype is now forced to ETH_P_IP.
|
||||||
[ISC-Bugs #18975]
|
[ISC-Bugs #18975]
|
||||||
|
|
||||||
- Minor code cleanups - but note port change for #23196
|
- Minor code cleanups - but note port change for #23196
|
||||||
@ -883,7 +898,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
[ISC-Bugs #19368] - Tidy up variable types in validate_port.
|
[ISC-Bugs #19368] - Tidy up variable types in validate_port.
|
||||||
|
|
||||||
- Code cleanup: remove obsolete PROTO, KandR, INLINE and ANSI_DECL macros
|
- Code cleanup: remove obsolete PROTO, KandR, INLINE and ANSI_DECL macros
|
||||||
[ISC-Bugs #13151]
|
[ISC-Bugs #13151]
|
||||||
|
|
||||||
- Compilation problem with gcc4.5 and omshell.c resolved. [ISC-Bugs #23831]
|
- Compilation problem with gcc4.5 and omshell.c resolved. [ISC-Bugs #23831]
|
||||||
|
|
||||||
@ -898,7 +913,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- Documentation cleanup
|
- Documentation cleanup
|
||||||
[ISC-Bugs #23326] Updated References document, several man page updates
|
[ISC-Bugs #23326] Updated References document, several man page updates
|
||||||
|
|
||||||
- Server no longer complains about NULL pointer when configured
|
- Server no longer complains about NULL pointer when configured
|
||||||
server-identifier expression fails to evaluate. [ISC-Bugs #24547]
|
server-identifier expression fails to evaluate. [ISC-Bugs #24547]
|
||||||
|
|
||||||
- Convert ISC_R_INPROGRESS status to ISC_R_SUCCESS when called from other
|
- Convert ISC_R_INPROGRESS status to ISC_R_SUCCESS when called from other
|
||||||
@ -913,9 +928,9 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- In Solaris 11 switch to using sockets instead of DLPI, thanks
|
- In Solaris 11 switch to using sockets instead of DLPI, thanks
|
||||||
to a patch form Oracle. [ISC-Bugs #24634].
|
to a patch form Oracle. [ISC-Bugs #24634].
|
||||||
|
|
||||||
- Strict checks for content of domain-name DHCPv4 option can now be
|
- Strict checks for content of domain-name DHCPv4 option can now be
|
||||||
configured during compilation time. Even though RFC2132 does not allow
|
configured during compilation time. Even though RFC2132 does not allow
|
||||||
to store more than one domain in domain-name option, such behavior is
|
to store more than one domain in domain-name option, such behavior is
|
||||||
now enabled by default, but this may change some time in the future.
|
now enabled by default, but this may change some time in the future.
|
||||||
See ACCEPT_LIST_IN_DOMAIN_NAME define in includes/site.h.
|
See ACCEPT_LIST_IN_DOMAIN_NAME define in includes/site.h.
|
||||||
[ISC-Bugs #24167]
|
[ISC-Bugs #24167]
|
||||||
@ -983,7 +998,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
|
|
||||||
- Tidy up the receive calls and eliminate the need for found_pkt.
|
- Tidy up the receive calls and eliminate the need for found_pkt.
|
||||||
[ISC-Bugs #25066]
|
[ISC-Bugs #25066]
|
||||||
|
|
||||||
- Add support for Infiniband over sockets to the server and
|
- Add support for Infiniband over sockets to the server and
|
||||||
relay code. We've tested this on Solaris and hope to expand
|
relay code. We've tested this on Solaris and hope to expand
|
||||||
support for Infiniband in the future. This patch also corrects
|
support for Infiniband in the future. This patch also corrects
|
||||||
@ -1078,14 +1093,14 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
minimize disruption. The restriction will likely be tightened in
|
minimize disruption. The restriction will likely be tightened in
|
||||||
the future to disallow ids with a length of 1.
|
the future to disallow ids with a length of 1.
|
||||||
Thanks to Markus Hietava of Codenomicon CROSS project for the
|
Thanks to Markus Hietava of Codenomicon CROSS project for the
|
||||||
finding this issue and CERT-FI for vulnerability coordination.
|
finding this issue and CERT-FI for vulnerability coordination.
|
||||||
[ISC-Bugs #29851]
|
[ISC-Bugs #29851]
|
||||||
CVE: CVE-2012-3571
|
CVE: CVE-2012-3571
|
||||||
|
|
||||||
! When attempting to convert a DUID from a client id option
|
! When attempting to convert a DUID from a client id option
|
||||||
into a hardware address handle unexpected client ids properly.
|
into a hardware address handle unexpected client ids properly.
|
||||||
Thanks to Markus Hietava of Codenomicon CROSS project for the
|
Thanks to Markus Hietava of Codenomicon CROSS project for the
|
||||||
finding this issue and CERT-FI for vulnerability coordination.
|
finding this issue and CERT-FI for vulnerability coordination.
|
||||||
[ISC-Bugs #29852]
|
[ISC-Bugs #29852]
|
||||||
CVE: CVE-2012-3570
|
CVE: CVE-2012-3570
|
||||||
|
|
||||||
@ -1139,7 +1154,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
and patches.
|
and patches.
|
||||||
[ISC-Bugs #23833]
|
[ISC-Bugs #23833]
|
||||||
|
|
||||||
- Parsing unquoted base64 strings improved. Parser now properly handles
|
- Parsing unquoted base64 strings improved. Parser now properly handles
|
||||||
strings that contain reserved names. [ISC-Bugs #23048]
|
strings that contain reserved names. [ISC-Bugs #23048]
|
||||||
|
|
||||||
- Modify the nak_lease function to make some attempts to find a
|
- Modify the nak_lease function to make some attempts to find a
|
||||||
@ -1422,7 +1437,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- Clean up to allow compilation with gcc 2.95.4 on FreeBSD. Remove an
|
- Clean up to allow compilation with gcc 2.95.4 on FreeBSD. Remove an
|
||||||
extra semi-colon from common/dns.c and moved setting a variable to NULL
|
extra semi-colon from common/dns.c and moved setting a variable to NULL
|
||||||
in server/dhcpv6.c to allow the compiler to decide that the variable
|
in server/dhcpv6.c to allow the compiler to decide that the variable
|
||||||
was always properly set.
|
was always properly set.
|
||||||
|
|
||||||
Changes since 4.1.0b1
|
Changes since 4.1.0b1
|
||||||
|
|
||||||
@ -1581,7 +1596,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
This is useful if you want not only to release a lease, but also make
|
This is useful if you want not only to release a lease, but also make
|
||||||
it available for reuse right away. Hat tip to Christof Chen.
|
it available for reuse right away. Hat tip to Christof Chen.
|
||||||
|
|
||||||
- Fixed definition of the iaaddr hash functions to use the correct
|
- Fixed definition of the iaaddr hash functions to use the correct
|
||||||
functions when referencing and dereferencing memory.
|
functions when referencing and dereferencing memory.
|
||||||
|
|
||||||
- Some definitions not in phase with the IANA registry were updated.
|
- Some definitions not in phase with the IANA registry were updated.
|
||||||
@ -1664,7 +1679,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- When server is configured with options that it overrides, a warning is
|
- When server is configured with options that it overrides, a warning is
|
||||||
issued when the configuration file is read, rather than at the time the
|
issued when the configuration file is read, rather than at the time the
|
||||||
option is overridden. This was important, because the warning was given
|
option is overridden. This was important, because the warning was given
|
||||||
every time the option was overridden, which could create a lot of
|
every time the option was overridden, which could create a lot of
|
||||||
unnecessary logging.
|
unnecessary logging.
|
||||||
|
|
||||||
- Fixed a compilation problems on platforms that define a value for FDDI,
|
- Fixed a compilation problems on platforms that define a value for FDDI,
|
||||||
@ -1680,7 +1695,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- Fix startup error messages to report a missing "subnet6 declaration", rather
|
- Fix startup error messages to report a missing "subnet6 declaration", rather
|
||||||
than a missing "subnet declaration", when running as a DHCPv6 server.
|
than a missing "subnet declaration", when running as a DHCPv6 server.
|
||||||
|
|
||||||
- DHCPv6 client timestamp in DUID was based on the year 1970 rather
|
- DHCPv6 client timestamp in DUID was based on the year 1970 rather
|
||||||
than the year 2000.
|
than the year 2000.
|
||||||
|
|
||||||
- Warn when attempting to use a hardware parameter in DHCPv6.
|
- Warn when attempting to use a hardware parameter in DHCPv6.
|
||||||
@ -1698,12 +1713,12 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- dhc6_lease_destroy() and dhc6_ia_destroy() now set lease and IA pointers
|
- dhc6_lease_destroy() and dhc6_ia_destroy() now set lease and IA pointers
|
||||||
to NULL after freeing, to prevent subsequent accesses to freed memory.
|
to NULL after freeing, to prevent subsequent accesses to freed memory.
|
||||||
|
|
||||||
- The DHCPv6 server would not send the preference option unless the
|
- The DHCPv6 server would not send the preference option unless the
|
||||||
client requested it, via the ORO. This has been fixed, so the DHCPv6
|
client requested it, via the ORO. This has been fixed, so the DHCPv6
|
||||||
server will always send the preference value if it is configured.
|
server will always send the preference value if it is configured.
|
||||||
|
|
||||||
- When addresses were passed as hints to the server in an IA, they were
|
- When addresses were passed as hints to the server in an IA, they were
|
||||||
incorrectly handled, sometimes being treated as an error. Now the
|
incorrectly handled, sometimes being treated as an error. Now the
|
||||||
server will treat these as hints and ignore them if it cannot supply
|
server will treat these as hints and ignore them if it cannot supply
|
||||||
a requested address.
|
a requested address.
|
||||||
|
|
||||||
@ -1741,8 +1756,8 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
to put dhcpd.leases and dhclient.leases in /usr/local/var/db, which no
|
to put dhcpd.leases and dhclient.leases in /usr/local/var/db, which no
|
||||||
one ever has.
|
one ever has.
|
||||||
|
|
||||||
- Regression fix for bug where server advertised a IPv6 address in
|
- Regression fix for bug where server advertised a IPv6 address in
|
||||||
response to a SOLICIT but would not return the address in response
|
response to a SOLICIT but would not return the address in response
|
||||||
to a REQUEST.
|
to a REQUEST.
|
||||||
|
|
||||||
- A bug was fixed where the DHCPv6 server puts the NoAddrsAvail status
|
- A bug was fixed where the DHCPv6 server puts the NoAddrsAvail status
|
||||||
@ -1774,7 +1789,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
|
|
||||||
- Eliminated a spurious error message from the client
|
- Eliminated a spurious error message from the client
|
||||||
|
|
||||||
- A number of bugs with the internal handling of lease state on the
|
- A number of bugs with the internal handling of lease state on the
|
||||||
server have been fixed. Some of these could cause server crashes.
|
server have been fixed. Some of these could cause server crashes.
|
||||||
|
|
||||||
- The peer_wants_leases() changes pulled up from 3.1.0 were corrected,
|
- The peer_wants_leases() changes pulled up from 3.1.0 were corrected,
|
||||||
@ -1789,13 +1804,13 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
|
|
||||||
Changes since 4.0.0a3
|
Changes since 4.0.0a3
|
||||||
|
|
||||||
- The DHCP server no longer requires a "ddns-update-style" statement,
|
- The DHCP server no longer requires a "ddns-update-style" statement,
|
||||||
and now defaults to "none", which means DNS updates are disabled.
|
and now defaults to "none", which means DNS updates are disabled.
|
||||||
|
|
||||||
- Log messages when failover peer names mismatch have been improved to
|
- Log messages when failover peer names mismatch have been improved to
|
||||||
point out the problem.
|
point out the problem.
|
||||||
|
|
||||||
- Bug where server advertised a IPv6 address in response to a SOLICIT
|
- Bug where server advertised a IPv6 address in response to a SOLICIT
|
||||||
but would not return the address in response to a REQUEST. Thanks to
|
but would not return the address in response to a REQUEST. Thanks to
|
||||||
Dennis Kou for finding the bug.
|
Dennis Kou for finding the bug.
|
||||||
|
|
||||||
@ -1808,7 +1823,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
|
|
||||||
- Compilation with DLPI and -Werror has been repaired.
|
- Compilation with DLPI and -Werror has been repaired.
|
||||||
|
|
||||||
- Error in decoding IA_NA option if multiple interfaces are present
|
- Error in decoding IA_NA option if multiple interfaces are present
|
||||||
fixed by Marcus Goller.
|
fixed by Marcus Goller.
|
||||||
|
|
||||||
- DHCPv6 server Confirm message processing has been enhanced - it no
|
- DHCPv6 server Confirm message processing has been enhanced - it no
|
||||||
@ -1834,7 +1849,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
- Fixed file descriptor leak on listen failure. Thanks to Tom Clark.
|
- Fixed file descriptor leak on listen failure. Thanks to Tom Clark.
|
||||||
|
|
||||||
- Bug in server configuration parser caused server to get stuck on
|
- Bug in server configuration parser caused server to get stuck on
|
||||||
startup for certain bad pool declarations. Thanks to Guillaume
|
startup for certain bad pool declarations. Thanks to Guillaume
|
||||||
Knispel for the bug report and fix.
|
Knispel for the bug report and fix.
|
||||||
|
|
||||||
- Code cleaned to remove warnings reported by "gcc -Wall".
|
- Code cleaned to remove warnings reported by "gcc -Wall".
|
||||||
@ -1850,8 +1865,8 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
the DHCPv6 client configuration. 'send dhcp6.oro' is no longer
|
the DHCPv6 client configuration. 'send dhcp6.oro' is no longer
|
||||||
necessary.
|
necessary.
|
||||||
|
|
||||||
- Bug fixed where configuration file parsing did not work with
|
- Bug fixed where configuration file parsing did not work with
|
||||||
zero-length options; this made it impossible to set the
|
zero-length options; this made it impossible to set the
|
||||||
rapid-commit option.
|
rapid-commit option.
|
||||||
|
|
||||||
- Bogus messages about host records with IPv4 fixed-addresses being of
|
- Bogus messages about host records with IPv4 fixed-addresses being of
|
||||||
@ -3235,7 +3250,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
had been done for a client with no name, even though no update had
|
had been done for a client with no name, even though no update had
|
||||||
been done, and then when the client's lease expired the deletion of
|
been done, and then when the client's lease expired the deletion of
|
||||||
that nonexistant record would time out because the name was the null
|
that nonexistant record would time out because the name was the null
|
||||||
string.
|
string.
|
||||||
|
|
||||||
- Clean up the omshell, dhcpctl and omapi man pages a bit.
|
- Clean up the omshell, dhcpctl and omapi man pages a bit.
|
||||||
|
|
||||||
@ -3758,7 +3773,7 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
|
|
||||||
- When we get a bogus state lease binding state transition, don't do
|
- When we get a bogus state lease binding state transition, don't do
|
||||||
the transition.
|
the transition.
|
||||||
|
|
||||||
|
|
||||||
Changes since 3.0 Beta 2 Patchlevel 12
|
Changes since 3.0 Beta 2 Patchlevel 12
|
||||||
|
|
||||||
|
37
aclocal.m4
vendored
37
aclocal.m4
vendored
@ -109,6 +109,43 @@ AC_PREREQ([2.50])dnl
|
|||||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# AM_COND_IF -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2008-2013 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# _AM_COND_IF
|
||||||
|
# _AM_COND_ELSE
|
||||||
|
# _AM_COND_ENDIF
|
||||||
|
# --------------
|
||||||
|
# These macros are only used for tracing.
|
||||||
|
m4_define([_AM_COND_IF])
|
||||||
|
m4_define([_AM_COND_ELSE])
|
||||||
|
m4_define([_AM_COND_ENDIF])
|
||||||
|
|
||||||
|
# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE])
|
||||||
|
# ---------------------------------------
|
||||||
|
# If the shell condition COND is true, execute IF-TRUE, otherwise execute
|
||||||
|
# IF-FALSE. Allow automake to learn about conditional instantiating macros
|
||||||
|
# (the AC_CONFIG_FOOS).
|
||||||
|
AC_DEFUN([AM_COND_IF],
|
||||||
|
[m4_ifndef([_AM_COND_VALUE_$1],
|
||||||
|
[m4_fatal([$0: no such condition "$1"])])dnl
|
||||||
|
_AM_COND_IF([$1])dnl
|
||||||
|
if test -z "$$1_TRUE"; then :
|
||||||
|
m4_n([$2])[]dnl
|
||||||
|
m4_ifval([$3],
|
||||||
|
[_AM_COND_ELSE([$1])dnl
|
||||||
|
else
|
||||||
|
$3
|
||||||
|
])dnl
|
||||||
|
_AM_COND_ENDIF([$1])dnl
|
||||||
|
fi[]dnl
|
||||||
|
])
|
||||||
|
|
||||||
# AM_CONDITIONAL -*- Autoconf -*-
|
# AM_CONDITIONAL -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
|
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
|
||||||
|
@ -232,6 +232,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -21,12 +21,8 @@ DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a
|
|||||||
$(top_builddir)/bind/lib/libisc.a
|
$(top_builddir)/bind/lib/libisc.a
|
||||||
|
|
||||||
ATF_TESTS =
|
ATF_TESTS =
|
||||||
TESTS =
|
|
||||||
if HAVE_ATF
|
if HAVE_ATF
|
||||||
|
|
||||||
check: $(ATF_TESTS)
|
|
||||||
atf-run | atf-report
|
|
||||||
|
|
||||||
ATF_TESTS += duid_unittests
|
ATF_TESTS += duid_unittests
|
||||||
|
|
||||||
duid_unittests_SOURCES = $(DHCPSRC)
|
duid_unittests_SOURCES = $(DHCPSRC)
|
||||||
@ -35,6 +31,9 @@ duid_unittests_SOURCES += duid_unittest.c
|
|||||||
duid_unittests_LDADD = $(ATF_LDFLAGS)
|
duid_unittests_LDADD = $(ATF_LDFLAGS)
|
||||||
duid_unittests_LDADD += $(DHCPLIBS)
|
duid_unittests_LDADD += $(DHCPLIBS)
|
||||||
|
|
||||||
|
check: $(ATF_TESTS)
|
||||||
|
sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
check_PROGRAMS = $(ATF_TESTS) $(TESTS)
|
check_PROGRAMS = $(ATF_TESTS)
|
||||||
|
@ -77,12 +77,11 @@ PRE_UNINSTALL = :
|
|||||||
POST_UNINSTALL = :
|
POST_UNINSTALL = :
|
||||||
build_triplet = @build@
|
build_triplet = @build@
|
||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
TESTS =
|
|
||||||
@HAVE_ATF_TRUE@am__append_1 = duid_unittests
|
@HAVE_ATF_TRUE@am__append_1 = duid_unittests
|
||||||
check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3)
|
check_PROGRAMS = $(am__EXEEXT_2)
|
||||||
subdir = client/tests
|
subdir = client/tests
|
||||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||||
$(top_srcdir)/depcomp $(top_srcdir)/test-driver
|
$(top_srcdir)/depcomp
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
@ -93,7 +92,6 @@ CONFIG_CLEAN_FILES =
|
|||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
@HAVE_ATF_TRUE@am__EXEEXT_1 = duid_unittests$(EXEEXT)
|
@HAVE_ATF_TRUE@am__EXEEXT_1 = duid_unittests$(EXEEXT)
|
||||||
am__EXEEXT_2 = $(am__EXEEXT_1)
|
am__EXEEXT_2 = $(am__EXEEXT_1)
|
||||||
am__EXEEXT_3 =
|
|
||||||
am__duid_unittests_SOURCES_DIST = ../clparse.c ../dhc6.c ../dhclient.c \
|
am__duid_unittests_SOURCES_DIST = ../clparse.c ../dhc6.c ../dhclient.c \
|
||||||
duid_unittest.c
|
duid_unittest.c
|
||||||
am__objects_1 = clparse.$(OBJEXT) dhc6.$(OBJEXT) dhclient.$(OBJEXT)
|
am__objects_1 = clparse.$(OBJEXT) dhc6.$(OBJEXT) dhclient.$(OBJEXT)
|
||||||
@ -157,7 +155,7 @@ am__recursive_targets = \
|
|||||||
$(RECURSIVE_CLEAN_TARGETS) \
|
$(RECURSIVE_CLEAN_TARGETS) \
|
||||||
$(am__extra_recursive_targets)
|
$(am__extra_recursive_targets)
|
||||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||||
check recheck distdir
|
distdir
|
||||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
# Read a list of newline-separated strings from the standard input,
|
# Read a list of newline-separated strings from the standard input,
|
||||||
# and print each of them once, without duplicates. Input order is
|
# and print each of them once, without duplicates. Input order is
|
||||||
@ -177,207 +175,6 @@ am__define_uniq_tagged_files = \
|
|||||||
done | $(am__uniquify_input)`
|
done | $(am__uniquify_input)`
|
||||||
ETAGS = etags
|
ETAGS = etags
|
||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
am__tty_colors_dummy = \
|
|
||||||
mgn= red= grn= lgn= blu= brg= std=; \
|
|
||||||
am__color_tests=no
|
|
||||||
am__tty_colors = { \
|
|
||||||
$(am__tty_colors_dummy); \
|
|
||||||
if test "X$(AM_COLOR_TESTS)" = Xno; then \
|
|
||||||
am__color_tests=no; \
|
|
||||||
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
fi; \
|
|
||||||
if test $$am__color_tests = yes; then \
|
|
||||||
red='[0;31m'; \
|
|
||||||
grn='[0;32m'; \
|
|
||||||
lgn='[1;32m'; \
|
|
||||||
blu='[1;34m'; \
|
|
||||||
mgn='[0;35m'; \
|
|
||||||
brg='[1m'; \
|
|
||||||
std='[m'; \
|
|
||||||
fi; \
|
|
||||||
}
|
|
||||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
|
||||||
am__vpath_adj = case $$p in \
|
|
||||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
|
||||||
*) f=$$p;; \
|
|
||||||
esac;
|
|
||||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
|
||||||
am__install_max = 40
|
|
||||||
am__nobase_strip_setup = \
|
|
||||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
|
||||||
am__nobase_strip = \
|
|
||||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
|
||||||
am__nobase_list = $(am__nobase_strip_setup); \
|
|
||||||
for p in $$list; do echo "$$p $$p"; done | \
|
|
||||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
|
||||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
|
||||||
if (++n[$$2] == $(am__install_max)) \
|
|
||||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
||||||
END { for (dir in files) print dir, files[dir] }'
|
|
||||||
am__base_list = \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
|
||||||
am__uninstall_files_from_dir = { \
|
|
||||||
test -z "$$files" \
|
|
||||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
||||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|
||||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
|
||||||
}
|
|
||||||
am__recheck_rx = ^[ ]*:recheck:[ ]*
|
|
||||||
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
|
|
||||||
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, print the name of the tests that are to be re-run
|
|
||||||
# upon "make recheck".
|
|
||||||
am__list_recheck_tests = $(AWK) '{ \
|
|
||||||
recheck = 1; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
{ \
|
|
||||||
if ((getline line2 < ($$0 ".log")) < 0) \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
|
|
||||||
{ \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
|
|
||||||
{ \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
}; \
|
|
||||||
if (recheck) \
|
|
||||||
print $$0; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, create the global log from their .trs and .log files.
|
|
||||||
am__create_global_log = $(AWK) ' \
|
|
||||||
function fatal(msg) \
|
|
||||||
{ \
|
|
||||||
print "fatal: making $@: " msg | "cat >&2"; \
|
|
||||||
exit 1; \
|
|
||||||
} \
|
|
||||||
function rst_section(header) \
|
|
||||||
{ \
|
|
||||||
print header; \
|
|
||||||
len = length(header); \
|
|
||||||
for (i = 1; i <= len; i = i + 1) \
|
|
||||||
printf "="; \
|
|
||||||
printf "\n\n"; \
|
|
||||||
} \
|
|
||||||
{ \
|
|
||||||
copy_in_global_log = 1; \
|
|
||||||
global_test_result = "RUN"; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".trs"); \
|
|
||||||
if (line ~ /$(am__global_test_result_rx)/) \
|
|
||||||
{ \
|
|
||||||
sub("$(am__global_test_result_rx)", "", line); \
|
|
||||||
sub("[ ]*$$", "", line); \
|
|
||||||
global_test_result = line; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
|
|
||||||
copy_in_global_log = 0; \
|
|
||||||
}; \
|
|
||||||
if (copy_in_global_log) \
|
|
||||||
{ \
|
|
||||||
rst_section(global_test_result ": " $$0); \
|
|
||||||
while ((rc = (getline line < ($$0 ".log"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".log"); \
|
|
||||||
print line; \
|
|
||||||
}; \
|
|
||||||
printf "\n"; \
|
|
||||||
}; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# Restructured Text title.
|
|
||||||
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
|
|
||||||
# Solaris 10 'make', and several other traditional 'make' implementations,
|
|
||||||
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
|
|
||||||
# by disabling -e (using the XSI extension "set +e") if it's set.
|
|
||||||
am__sh_e_setup = case $$- in *e*) set +e;; esac
|
|
||||||
# Default flags passed to test drivers.
|
|
||||||
am__common_driver_flags = \
|
|
||||||
--color-tests "$$am__color_tests" \
|
|
||||||
--enable-hard-errors "$$am__enable_hard_errors" \
|
|
||||||
--expect-failure "$$am__expect_failure"
|
|
||||||
# To be inserted before the command running the test. Creates the
|
|
||||||
# directory for the log if needed. Stores in $dir the directory
|
|
||||||
# containing $f, in $tst the test, in $log the log. Executes the
|
|
||||||
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
|
|
||||||
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
|
|
||||||
# will run the test scripts (or their associated LOG_COMPILER, if
|
|
||||||
# thy have one).
|
|
||||||
am__check_pre = \
|
|
||||||
$(am__sh_e_setup); \
|
|
||||||
$(am__vpath_adj_setup) $(am__vpath_adj) \
|
|
||||||
$(am__tty_colors); \
|
|
||||||
srcdir=$(srcdir); export srcdir; \
|
|
||||||
case "$@" in \
|
|
||||||
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
|
|
||||||
*) am__odir=.;; \
|
|
||||||
esac; \
|
|
||||||
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|
|
||||||
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
|
|
||||||
if test -f "./$$f"; then dir=./; \
|
|
||||||
elif test -f "$$f"; then dir=; \
|
|
||||||
else dir="$(srcdir)/"; fi; \
|
|
||||||
tst=$$dir$$f; log='$@'; \
|
|
||||||
if test -n '$(DISABLE_HARD_ERRORS)'; then \
|
|
||||||
am__enable_hard_errors=no; \
|
|
||||||
else \
|
|
||||||
am__enable_hard_errors=yes; \
|
|
||||||
fi; \
|
|
||||||
case " $(XFAIL_TESTS) " in \
|
|
||||||
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
|
|
||||||
am__expect_failure=yes;; \
|
|
||||||
*) \
|
|
||||||
am__expect_failure=no;; \
|
|
||||||
esac; \
|
|
||||||
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
|
|
||||||
# A shell command to get the names of the tests scripts with any registered
|
|
||||||
# extension removed (i.e., equivalently, the names of the test logs, with
|
|
||||||
# the '.log' extension removed). The result is saved in the shell variable
|
|
||||||
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
|
|
||||||
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
|
|
||||||
# since that might cause problem with VPATH rewrites for suffix-less tests.
|
|
||||||
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
|
|
||||||
am__set_TESTS_bases = \
|
|
||||||
bases='$(TEST_LOGS)'; \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
|
|
||||||
bases=`echo $$bases`
|
|
||||||
RECHECK_LOGS = $(TEST_LOGS)
|
|
||||||
TEST_SUITE_LOG = test-suite.log
|
|
||||||
TEST_EXTENSIONS = @EXEEXT@ .test
|
|
||||||
am__test_logs1 = $(TESTS:=.log)
|
|
||||||
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
|
|
||||||
TEST_LOGS = $(am__test_logs2:.test.log=.log)
|
|
||||||
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
|
|
||||||
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
|
|
||||||
$(TEST_LOG_FLAGS)
|
|
||||||
am__set_b = \
|
|
||||||
case '$@' in \
|
|
||||||
*/*) \
|
|
||||||
case '$*' in \
|
|
||||||
*/*) b='$*';; \
|
|
||||||
*) b=`echo '$@' | sed 's/\.log$$//'`; \
|
|
||||||
esac;; \
|
|
||||||
*) \
|
|
||||||
b='$*';; \
|
|
||||||
esac
|
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
am__relativize = \
|
am__relativize = \
|
||||||
@ -408,6 +205,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -524,7 +322,7 @@ ATF_TESTS = $(am__append_1)
|
|||||||
all: all-recursive
|
all: all-recursive
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
|
.SUFFIXES: .c .o .obj
|
||||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
@ -729,162 +527,6 @@ cscopelist-am: $(am__tagged_files)
|
|||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
# Recover from deleted '.trs' file; this should ensure that
|
|
||||||
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
|
|
||||||
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
|
|
||||||
# to avoid problems with "make -n".
|
|
||||||
.log.trs:
|
|
||||||
rm -f $< $@
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $<
|
|
||||||
|
|
||||||
# Leading 'am--fnord' is there to ensure the list of targets does not
|
|
||||||
# expand to empty, as could happen e.g. with make check TESTS=''.
|
|
||||||
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
|
|
||||||
am--force-recheck:
|
|
||||||
@:
|
|
||||||
|
|
||||||
$(TEST_SUITE_LOG): $(TEST_LOGS)
|
|
||||||
@$(am__set_TESTS_bases); \
|
|
||||||
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
|
|
||||||
redo_bases=`for i in $$bases; do \
|
|
||||||
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
|
|
||||||
done`; \
|
|
||||||
if test -n "$$redo_bases"; then \
|
|
||||||
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
|
|
||||||
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
if test -n "$$am__remaking_logs"; then \
|
|
||||||
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
|
|
||||||
"recursion detected" >&2; \
|
|
||||||
else \
|
|
||||||
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
|
|
||||||
fi; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
st=0; \
|
|
||||||
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
|
|
||||||
for i in $$redo_bases; do \
|
|
||||||
test -f $$i.trs && test -r $$i.trs \
|
|
||||||
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
|
|
||||||
test -f $$i.log && test -r $$i.log \
|
|
||||||
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
|
|
||||||
done; \
|
|
||||||
test $$st -eq 0 || exit 1; \
|
|
||||||
fi
|
|
||||||
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
|
|
||||||
ws='[ ]'; \
|
|
||||||
results=`for b in $$bases; do echo $$b.trs; done`; \
|
|
||||||
test -n "$$results" || results=/dev/null; \
|
|
||||||
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
|
|
||||||
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
|
|
||||||
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
|
|
||||||
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
|
|
||||||
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
|
|
||||||
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
|
|
||||||
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
|
|
||||||
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
|
|
||||||
success=true; \
|
|
||||||
else \
|
|
||||||
success=false; \
|
|
||||||
fi; \
|
|
||||||
br='==================='; br=$$br$$br$$br$$br; \
|
|
||||||
result_count () \
|
|
||||||
{ \
|
|
||||||
if test x"$$1" = x"--maybe-color"; then \
|
|
||||||
maybe_colorize=yes; \
|
|
||||||
elif test x"$$1" = x"--no-color"; then \
|
|
||||||
maybe_colorize=no; \
|
|
||||||
else \
|
|
||||||
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
|
|
||||||
fi; \
|
|
||||||
shift; \
|
|
||||||
desc=$$1 count=$$2; \
|
|
||||||
if test $$maybe_colorize = yes && test $$count -gt 0; then \
|
|
||||||
color_start=$$3 color_end=$$std; \
|
|
||||||
else \
|
|
||||||
color_start= color_end=; \
|
|
||||||
fi; \
|
|
||||||
echo "$${color_start}# $$desc $$count$${color_end}"; \
|
|
||||||
}; \
|
|
||||||
create_testsuite_report () \
|
|
||||||
{ \
|
|
||||||
result_count $$1 "TOTAL:" $$all "$$brg"; \
|
|
||||||
result_count $$1 "PASS: " $$pass "$$grn"; \
|
|
||||||
result_count $$1 "SKIP: " $$skip "$$blu"; \
|
|
||||||
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
|
|
||||||
result_count $$1 "FAIL: " $$fail "$$red"; \
|
|
||||||
result_count $$1 "XPASS:" $$xpass "$$red"; \
|
|
||||||
result_count $$1 "ERROR:" $$error "$$mgn"; \
|
|
||||||
}; \
|
|
||||||
{ \
|
|
||||||
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
|
|
||||||
$(am__rst_title); \
|
|
||||||
create_testsuite_report --no-color; \
|
|
||||||
echo; \
|
|
||||||
echo ".. contents:: :depth: 2"; \
|
|
||||||
echo; \
|
|
||||||
for b in $$bases; do echo $$b; done \
|
|
||||||
| $(am__create_global_log); \
|
|
||||||
} >$(TEST_SUITE_LOG).tmp || exit 1; \
|
|
||||||
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
|
|
||||||
if $$success; then \
|
|
||||||
col="$$grn"; \
|
|
||||||
else \
|
|
||||||
col="$$red"; \
|
|
||||||
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
|
|
||||||
fi; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
create_testsuite_report --maybe-color; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
if $$success; then :; else \
|
|
||||||
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
|
|
||||||
if test -n "$(PACKAGE_BUGREPORT)"; then \
|
|
||||||
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
|
|
||||||
fi; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
fi; \
|
|
||||||
$$success || exit 1
|
|
||||||
|
|
||||||
check-TESTS:
|
|
||||||
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
|
|
||||||
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
trs_list=`for i in $$bases; do echo $$i.trs; done`; \
|
|
||||||
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?;
|
|
||||||
recheck: all $(check_PROGRAMS)
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done \
|
|
||||||
| $(am__list_recheck_tests)` || exit 1; \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
log_list=`echo $$log_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
|
|
||||||
am__force_recheck=am--force-recheck \
|
|
||||||
TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?
|
|
||||||
.test.log:
|
|
||||||
@p='$<'; \
|
|
||||||
$(am__set_b); \
|
|
||||||
$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
--log-file $$b.log --trs-file $$b.trs \
|
|
||||||
$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
@am__EXEEXT_TRUE@.test$(EXEEXT).log:
|
|
||||||
@am__EXEEXT_TRUE@ @p='$<'; \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__set_b); \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
@ -942,7 +584,6 @@ distdir: $(DISTFILES)
|
|||||||
done
|
done
|
||||||
check-am: all-am
|
check-am: all-am
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
|
||||||
check: check-recursive
|
check: check-recursive
|
||||||
all-am: Makefile
|
all-am: Makefile
|
||||||
installdirs: installdirs-recursive
|
installdirs: installdirs-recursive
|
||||||
@ -967,9 +608,6 @@ install-strip:
|
|||||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
fi
|
fi
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
|
|
||||||
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
|
|
||||||
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
|
|
||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
@ -1050,18 +688,17 @@ uninstall-am:
|
|||||||
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
||||||
|
|
||||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||||
check-TESTS check-am clean clean-checkPROGRAMS clean-generic \
|
check-am clean clean-checkPROGRAMS clean-generic cscopelist-am \
|
||||||
cscopelist-am ctags ctags-am distclean distclean-compile \
|
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
html-am info info-am install install-am install-data \
|
install install-am install-data install-data-am install-dvi \
|
||||||
install-data-am install-dvi install-dvi-am install-exec \
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
install-exec-am install-html install-html-am install-info \
|
install-html-am install-info install-info-am install-man \
|
||||||
install-info-am install-man install-pdf install-pdf-am \
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
install-ps install-ps-am install-strip installcheck \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
|
ps ps-am tags tags-am uninstall uninstall-am
|
||||||
uninstall uninstall-am
|
|
||||||
|
|
||||||
|
|
||||||
# for autotools debugging only
|
# for autotools debugging only
|
||||||
@ -1071,7 +708,7 @@ info:
|
|||||||
@echo "ATF_LIBS=$(ATF_LIBS)"
|
@echo "ATF_LIBS=$(ATF_LIBS)"
|
||||||
|
|
||||||
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
||||||
@HAVE_ATF_TRUE@ atf-run | atf-report
|
@HAVE_ATF_TRUE@ sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
@ -239,6 +239,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -35,7 +35,7 @@ ns_name_unittest_LDADD += ../libdhcp.a \
|
|||||||
../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a
|
../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a
|
||||||
|
|
||||||
check: $(ATF_TESTS)
|
check: $(ATF_TESTS)
|
||||||
atf-run | atf-report
|
sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -243,6 +243,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -740,7 +741,7 @@ uninstall-am:
|
|||||||
|
|
||||||
|
|
||||||
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
||||||
@HAVE_ATF_TRUE@ atf-run | atf-report
|
@HAVE_ATF_TRUE@ sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
30
configure
vendored
30
configure
vendored
@ -629,6 +629,7 @@ LDAP_CFLAGS
|
|||||||
ac_prefix_program
|
ac_prefix_program
|
||||||
HAVE_ATF_FALSE
|
HAVE_ATF_FALSE
|
||||||
HAVE_ATF_TRUE
|
HAVE_ATF_TRUE
|
||||||
|
ATF_BIN
|
||||||
ATF_LDFLAGS
|
ATF_LDFLAGS
|
||||||
ATF_CFLAGS
|
ATF_CFLAGS
|
||||||
byte_order
|
byte_order
|
||||||
@ -5243,7 +5244,7 @@ if test "${enable_debug+set}" = set; then :
|
|||||||
|
|
||||||
$as_echo "#define DEBUG 1" >>confdefs.h
|
$as_echo "#define DEBUG 1" >>confdefs.h
|
||||||
|
|
||||||
# Just override CFLAGS to totally to remove optimization.
|
# Just override CFLAGS totally to remove optimization.
|
||||||
CFLAGS="-g";;
|
CFLAGS="-g";;
|
||||||
no) enable_debug=no ;;
|
no) enable_debug=no ;;
|
||||||
*) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
|
*) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
|
||||||
@ -5443,16 +5444,32 @@ if test "$atf_path" != "no" ; then
|
|||||||
do
|
do
|
||||||
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib/pkgconfig
|
atf_pcp=$d/lib/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib64/pkgconfig
|
atf_pcp=$d/lib64/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$atf_pcp" = "" ; then
|
if test "$atf_pcp" = "" ; then
|
||||||
as_fn_error $? "Unable to find atf files in location specified" "$LINENO" 5
|
as_fn_error $? "Unable to find atf files in location specified" "$LINENO" 5
|
||||||
else
|
else
|
||||||
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
||||||
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
||||||
|
if test -f $atf_pcp/atf-sh.pc ; then
|
||||||
|
ATF_BIN="`PKG_CONFIG_PATH=$atf_pcp pkg-config --variable=exec_prefix atf-sh`/bin"
|
||||||
|
else
|
||||||
|
# older versions don't have atf-sh, try usual place
|
||||||
|
ATF_BIN=$atf_path/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test ! -x $ATF_BIN/atf-run -o ! -x $ATF_BIN/atf-report ; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: atf-run,atf-report not found, assuming they are in your path" >&5
|
||||||
|
$as_echo "$as_me: WARNING: atf-run,atf-report not found, assuming they are in your path" >&2;}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -5466,8 +5483,11 @@ else
|
|||||||
HAVE_ATF_FALSE=
|
HAVE_ATF_FALSE=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### Uncomment this once docs.lab.isc.org upgrades to automake 1.11
|
if test -z "$HAVE_ATF_TRUE"; then :
|
||||||
### AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])])
|
|
||||||
|
$as_echo "#define HAVE_ATF 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
###
|
###
|
||||||
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
||||||
@ -6782,7 +6802,7 @@ $as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile client/Makefile client/tests/Makefile common/Makefile common/tests/Makefile dhcpctl/Makefile dst/Makefile includes/Makefile omapip/Makefile relay/Makefile server/Makefile tests/Makefile server/tests/Makefile doc/devel/doxyfile"
|
ac_config_files="$ac_config_files Makefile client/Makefile client/tests/Makefile common/Makefile common/tests/Makefile dhcpctl/Makefile dst/Makefile includes/Makefile omapip/Makefile relay/Makefile server/Makefile tests/Makefile tests/unittest.sh server/tests/Makefile doc/devel/doxyfile"
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
# This file is a shell script that caches the results of configure
|
# This file is a shell script that caches the results of configure
|
||||||
@ -7532,6 +7552,7 @@ do
|
|||||||
"relay/Makefile") CONFIG_FILES="$CONFIG_FILES relay/Makefile" ;;
|
"relay/Makefile") CONFIG_FILES="$CONFIG_FILES relay/Makefile" ;;
|
||||||
"server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;;
|
"server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;;
|
||||||
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
|
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
|
||||||
|
"tests/unittest.sh") CONFIG_FILES="$CONFIG_FILES tests/unittest.sh" ;;
|
||||||
"server/tests/Makefile") CONFIG_FILES="$CONFIG_FILES server/tests/Makefile" ;;
|
"server/tests/Makefile") CONFIG_FILES="$CONFIG_FILES server/tests/Makefile" ;;
|
||||||
"doc/devel/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/devel/doxyfile" ;;
|
"doc/devel/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/devel/doxyfile" ;;
|
||||||
|
|
||||||
@ -8254,6 +8275,7 @@ if test "$atf_path" != "no"
|
|||||||
then
|
then
|
||||||
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
||||||
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
||||||
|
echo "ATF_BIN : $ATF_BIN" >> config.report
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
20
configure.ac
20
configure.ac
@ -205,24 +205,38 @@ if test "$atf_path" != "no" ; then
|
|||||||
do
|
do
|
||||||
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
if test -f $d/lib/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib/pkgconfig
|
atf_pcp=$d/lib/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
elif test -f $d/lib64/pkgconfig/atf-c.pc ; then
|
||||||
atf_pcp=$d/lib64/pkgconfig
|
atf_pcp=$d/lib64/pkgconfig
|
||||||
|
atf_path=$d
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$atf_pcp" = "" ; then
|
if test "$atf_pcp" = "" ; then
|
||||||
AC_MSG_ERROR([Unable to find atf files in location specified])
|
AC_MSG_ERROR([Unable to find atf files in location specified])
|
||||||
else
|
else
|
||||||
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
ATF_CFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --cflags atf-c` -DUNIT_TEST"
|
||||||
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
ATF_LDFLAGS="`PKG_CONFIG_PATH=$atf_pcp pkg-config --libs atf-c`"
|
||||||
|
if test -f $atf_pcp/atf-sh.pc ; then
|
||||||
|
ATF_BIN="`PKG_CONFIG_PATH=$atf_pcp pkg-config --variable=exec_prefix atf-sh`/bin"
|
||||||
|
else
|
||||||
|
# older versions don't have atf-sh, try usual place
|
||||||
|
ATF_BIN=$atf_path/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test ! -x $ATF_BIN/atf-run -o ! -x $ATF_BIN/atf-report ; then
|
||||||
|
AC_MSG_WARN([atf-run,atf-report not found, assuming they are in your path])
|
||||||
|
fi
|
||||||
|
|
||||||
AC_SUBST(ATF_CFLAGS)
|
AC_SUBST(ATF_CFLAGS)
|
||||||
AC_SUBST(ATF_LDFLAGS)
|
AC_SUBST(ATF_LDFLAGS)
|
||||||
|
AC_SUBST(ATF_BIN)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_ATF, test "$atf_pcp" != "")
|
AM_CONDITIONAL(HAVE_ATF, test "$atf_pcp" != "")
|
||||||
### Uncomment this once docs.lab.isc.org upgrades to automake 1.11
|
AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])])
|
||||||
### AM_COND_IF([HAVE_ATF], [AC_DEFINE([HAVE_ATF], [1], [ATF framework specified?])])
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
### Path fun. Older versions of DHCP were installed in /usr/sbin, so we
|
||||||
@ -634,6 +648,7 @@ AC_CONFIG_FILES([
|
|||||||
relay/Makefile
|
relay/Makefile
|
||||||
server/Makefile
|
server/Makefile
|
||||||
tests/Makefile
|
tests/Makefile
|
||||||
|
tests/unittest.sh
|
||||||
server/tests/Makefile
|
server/tests/Makefile
|
||||||
doc/devel/doxyfile
|
doc/devel/doxyfile
|
||||||
])
|
])
|
||||||
@ -671,6 +686,7 @@ if test "$atf_path" != "no"
|
|||||||
then
|
then
|
||||||
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
echo "ATF_CFLAGS : $ATF_CFLAGS" >> config.report
|
||||||
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
echo "ATF_LDFLAGS : $ATF_LDFLAGS" >> config.report
|
||||||
|
echo "ATF_BIN : $ATF_BIN" >> config.report
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -207,6 +207,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -30,18 +30,28 @@ Test Framework)</a> as a framework to run our unittests.
|
|||||||
|
|
||||||
ATF stands for Automated Test Framework, and is the framework used for unit
|
ATF stands for Automated Test Framework, and is the framework used for unit
|
||||||
tests in ISC DHCP and BIND9. ATF sources can be downloaded from
|
tests in ISC DHCP and BIND9. ATF sources can be downloaded from
|
||||||
http://code.google.com/p/kyua/wiki/ATF . ATF itself must be configured, compiled
|
https://github.com/jmmv/kyua . ATF itself must be configured, compiled
|
||||||
and then installed to be available during the DHCP configure procedure. Please
|
and then installed to be available during the DHCP configure procedure. Please
|
||||||
follow INSTALL file supplied with ATF sources (it's essentially the typical
|
follow INSTALL file supplied with ATF sources (it's essentially the typical
|
||||||
./configure && make && make install procedure).
|
./configure && make && make install procedure).
|
||||||
|
|
||||||
|
Beginning with ATF version 0.16, it is necessary to include the following
|
||||||
|
options --enable-tools and --disable-shared when configuring ATF:
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
configure --prefix=<prefix> --enable-tools --disable-shared
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
|
ISC DHCP unittests will run with ATF releases upto 0.19. Beginning with
|
||||||
|
ATF 0.20, the tools, atf-run and atf-report required by ISC DHCP, were
|
||||||
|
deprecated and are no longer included with ATF.
|
||||||
|
|
||||||
The ATF successor, called Kyua, is being developed. As of August 2012, the
|
The ATF successor, called Kyua, is being developed. As of August 2012, the
|
||||||
latest available release of Kyua is 0.5. It claims to offer feature parity with
|
latest available release of Kyua is 0.5. It claims to offer feature parity with
|
||||||
ATF. Migration to Kyua may be planned some time in the future, but DHCP uses ATF
|
ATF. Migration to Kyua may be planned some time in the future, but DHCP uses ATF
|
||||||
for now. Such an upgrade should be done in coordination with BIND. The latest
|
for now. Such an upgrade should be done in coordination with BIND.
|
||||||
tested version of ATF that DHCP's unittests were run against is 0.15.
|
|
||||||
|
|
||||||
To build the unit-tests, use the following:
|
To build and run the unit-tests, use the following:
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
$ ./configure --with-atf
|
$ ./configure --with-atf
|
||||||
@ -49,6 +59,11 @@ $ make
|
|||||||
$ make check
|
$ make check
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
|
This will traverse the source tree running the unit tests in each unit test
|
||||||
|
subdirectory. Note that if one or more tests in a unit test subdirectory fail
|
||||||
|
the make process will stop. To run all of the tests regardless of outcome,
|
||||||
|
use "make -k check"
|
||||||
|
|
||||||
The following syntax is supported as well:
|
The following syntax is supported as well:
|
||||||
@verbatim
|
@verbatim
|
||||||
$ ./configure --with-atf=/path/to/your/atf/install
|
$ ./configure --with-atf=/path/to/your/atf/install
|
||||||
@ -66,6 +81,9 @@ executable. The typical way to run tests is:
|
|||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
$ atf-run | atf-report
|
$ atf-run | atf-report
|
||||||
|
(This assumes atf-run and atf-report are in your path)
|
||||||
|
or
|
||||||
|
$ sh ../../tests/unittests.sh
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
atf-run will read the Atffile in the current directory and execute all the tests
|
atf-run will read the Atffile in the current directory and execute all the tests
|
||||||
|
@ -188,6 +188,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -161,6 +161,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -34,6 +34,9 @@
|
|||||||
MSVC and with C++ compilers. */
|
MSVC and with C++ compilers. */
|
||||||
#undef FLEXIBLE_ARRAY_MEMBER
|
#undef FLEXIBLE_ARRAY_MEMBER
|
||||||
|
|
||||||
|
/* ATF framework specified? */
|
||||||
|
#undef HAVE_ATF
|
||||||
|
|
||||||
/* Define to 1 to use the Berkeley Packet Filter interface code. */
|
/* Define to 1 to use the Berkeley Packet Filter interface code. */
|
||||||
#undef HAVE_BPF
|
#undef HAVE_BPF
|
||||||
|
|
||||||
|
@ -204,6 +204,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -185,6 +185,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -246,6 +246,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
|
@ -23,12 +23,8 @@ DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a
|
|||||||
$(top_builddir)/bind/lib/libisc.a
|
$(top_builddir)/bind/lib/libisc.a
|
||||||
|
|
||||||
ATF_TESTS =
|
ATF_TESTS =
|
||||||
TESTS =
|
|
||||||
if HAVE_ATF
|
if HAVE_ATF
|
||||||
|
|
||||||
check: $(ATF_TESTS)
|
|
||||||
atf-run | atf-report
|
|
||||||
|
|
||||||
ATF_TESTS += dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
ATF_TESTS += dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
||||||
|
|
||||||
dhcpd_unittests_SOURCES = $(DHCPSRC)
|
dhcpd_unittests_SOURCES = $(DHCPSRC)
|
||||||
@ -42,7 +38,6 @@ dhcpd_unittests_LDFLAGS = $(AM_LDFLAGS) $(ATF_LDFLAGS)
|
|||||||
hash_unittests_SOURCES = $(DHCPSRC) hash_unittest.c
|
hash_unittests_SOURCES = $(DHCPSRC) hash_unittest.c
|
||||||
hash_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
hash_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
||||||
|
|
||||||
|
|
||||||
# This is a legacy unittest. It replaces main() with something that was in mdb6.c
|
# This is a legacy unittest. It replaces main() with something that was in mdb6.c
|
||||||
legacy_unittests_SOURCES = $(DHCPSRC) mdb6_unittest.c
|
legacy_unittests_SOURCES = $(DHCPSRC) mdb6_unittest.c
|
||||||
legacy_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
legacy_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
||||||
@ -50,6 +45,9 @@ legacy_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
|||||||
load_bal_unittests_SOURCES = $(DHCPSRC) load_bal_unittest.c
|
load_bal_unittests_SOURCES = $(DHCPSRC) load_bal_unittest.c
|
||||||
load_bal_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
load_bal_unittests_LDADD = $(DHCPLIBS) $(ATF_LDFLAGS)
|
||||||
|
|
||||||
|
check: $(ATF_TESTS)
|
||||||
|
sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
check_PROGRAMS = $(ATF_TESTS) $(TESTS)
|
check_PROGRAMS = $(ATF_TESTS)
|
||||||
|
@ -77,12 +77,11 @@ PRE_UNINSTALL = :
|
|||||||
POST_UNINSTALL = :
|
POST_UNINSTALL = :
|
||||||
build_triplet = @build@
|
build_triplet = @build@
|
||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
TESTS =
|
|
||||||
@HAVE_ATF_TRUE@am__append_1 = dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
@HAVE_ATF_TRUE@am__append_1 = dhcpd_unittests legacy_unittests hash_unittests load_bal_unittests
|
||||||
check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3)
|
check_PROGRAMS = $(am__EXEEXT_2)
|
||||||
subdir = server/tests
|
subdir = server/tests
|
||||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||||
$(top_srcdir)/depcomp $(top_srcdir)/test-driver
|
$(top_srcdir)/depcomp
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
@ -96,7 +95,6 @@ CONFIG_CLEAN_VPATH_FILES =
|
|||||||
@HAVE_ATF_TRUE@ hash_unittests$(EXEEXT) \
|
@HAVE_ATF_TRUE@ hash_unittests$(EXEEXT) \
|
||||||
@HAVE_ATF_TRUE@ load_bal_unittests$(EXEEXT)
|
@HAVE_ATF_TRUE@ load_bal_unittests$(EXEEXT)
|
||||||
am__EXEEXT_2 = $(am__EXEEXT_1)
|
am__EXEEXT_2 = $(am__EXEEXT_1)
|
||||||
am__EXEEXT_3 =
|
|
||||||
am__dhcpd_unittests_SOURCES_DIST = ../dhcp.c ../bootp.c ../confpars.c \
|
am__dhcpd_unittests_SOURCES_DIST = ../dhcp.c ../bootp.c ../confpars.c \
|
||||||
../db.c ../class.c ../failover.c ../omapi.c ../mdb.c \
|
../db.c ../class.c ../failover.c ../omapi.c ../mdb.c \
|
||||||
../stables.c ../salloc.c ../ddns.c ../dhcpleasequery.c \
|
../stables.c ../salloc.c ../ddns.c ../dhcpleasequery.c \
|
||||||
@ -204,7 +202,7 @@ am__recursive_targets = \
|
|||||||
$(RECURSIVE_CLEAN_TARGETS) \
|
$(RECURSIVE_CLEAN_TARGETS) \
|
||||||
$(am__extra_recursive_targets)
|
$(am__extra_recursive_targets)
|
||||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||||
check recheck distdir
|
distdir
|
||||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
# Read a list of newline-separated strings from the standard input,
|
# Read a list of newline-separated strings from the standard input,
|
||||||
# and print each of them once, without duplicates. Input order is
|
# and print each of them once, without duplicates. Input order is
|
||||||
@ -224,207 +222,6 @@ am__define_uniq_tagged_files = \
|
|||||||
done | $(am__uniquify_input)`
|
done | $(am__uniquify_input)`
|
||||||
ETAGS = etags
|
ETAGS = etags
|
||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
am__tty_colors_dummy = \
|
|
||||||
mgn= red= grn= lgn= blu= brg= std=; \
|
|
||||||
am__color_tests=no
|
|
||||||
am__tty_colors = { \
|
|
||||||
$(am__tty_colors_dummy); \
|
|
||||||
if test "X$(AM_COLOR_TESTS)" = Xno; then \
|
|
||||||
am__color_tests=no; \
|
|
||||||
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
|
|
||||||
am__color_tests=yes; \
|
|
||||||
fi; \
|
|
||||||
if test $$am__color_tests = yes; then \
|
|
||||||
red='[0;31m'; \
|
|
||||||
grn='[0;32m'; \
|
|
||||||
lgn='[1;32m'; \
|
|
||||||
blu='[1;34m'; \
|
|
||||||
mgn='[0;35m'; \
|
|
||||||
brg='[1m'; \
|
|
||||||
std='[m'; \
|
|
||||||
fi; \
|
|
||||||
}
|
|
||||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
|
||||||
am__vpath_adj = case $$p in \
|
|
||||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
|
||||||
*) f=$$p;; \
|
|
||||||
esac;
|
|
||||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
|
||||||
am__install_max = 40
|
|
||||||
am__nobase_strip_setup = \
|
|
||||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
|
||||||
am__nobase_strip = \
|
|
||||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
|
||||||
am__nobase_list = $(am__nobase_strip_setup); \
|
|
||||||
for p in $$list; do echo "$$p $$p"; done | \
|
|
||||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
|
||||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
|
||||||
if (++n[$$2] == $(am__install_max)) \
|
|
||||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
||||||
END { for (dir in files) print dir, files[dir] }'
|
|
||||||
am__base_list = \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
||||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
|
||||||
am__uninstall_files_from_dir = { \
|
|
||||||
test -z "$$files" \
|
|
||||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
||||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|
||||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
|
||||||
}
|
|
||||||
am__recheck_rx = ^[ ]*:recheck:[ ]*
|
|
||||||
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
|
|
||||||
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, print the name of the tests that are to be re-run
|
|
||||||
# upon "make recheck".
|
|
||||||
am__list_recheck_tests = $(AWK) '{ \
|
|
||||||
recheck = 1; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
{ \
|
|
||||||
if ((getline line2 < ($$0 ".log")) < 0) \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
|
|
||||||
{ \
|
|
||||||
recheck = 0; \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
|
|
||||||
{ \
|
|
||||||
break; \
|
|
||||||
} \
|
|
||||||
}; \
|
|
||||||
if (recheck) \
|
|
||||||
print $$0; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# A command that, given a newline-separated list of test names on the
|
|
||||||
# standard input, create the global log from their .trs and .log files.
|
|
||||||
am__create_global_log = $(AWK) ' \
|
|
||||||
function fatal(msg) \
|
|
||||||
{ \
|
|
||||||
print "fatal: making $@: " msg | "cat >&2"; \
|
|
||||||
exit 1; \
|
|
||||||
} \
|
|
||||||
function rst_section(header) \
|
|
||||||
{ \
|
|
||||||
print header; \
|
|
||||||
len = length(header); \
|
|
||||||
for (i = 1; i <= len; i = i + 1) \
|
|
||||||
printf "="; \
|
|
||||||
printf "\n\n"; \
|
|
||||||
} \
|
|
||||||
{ \
|
|
||||||
copy_in_global_log = 1; \
|
|
||||||
global_test_result = "RUN"; \
|
|
||||||
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".trs"); \
|
|
||||||
if (line ~ /$(am__global_test_result_rx)/) \
|
|
||||||
{ \
|
|
||||||
sub("$(am__global_test_result_rx)", "", line); \
|
|
||||||
sub("[ ]*$$", "", line); \
|
|
||||||
global_test_result = line; \
|
|
||||||
} \
|
|
||||||
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
|
|
||||||
copy_in_global_log = 0; \
|
|
||||||
}; \
|
|
||||||
if (copy_in_global_log) \
|
|
||||||
{ \
|
|
||||||
rst_section(global_test_result ": " $$0); \
|
|
||||||
while ((rc = (getline line < ($$0 ".log"))) != 0) \
|
|
||||||
{ \
|
|
||||||
if (rc < 0) \
|
|
||||||
fatal("failed to read from " $$0 ".log"); \
|
|
||||||
print line; \
|
|
||||||
}; \
|
|
||||||
printf "\n"; \
|
|
||||||
}; \
|
|
||||||
close ($$0 ".trs"); \
|
|
||||||
close ($$0 ".log"); \
|
|
||||||
}'
|
|
||||||
# Restructured Text title.
|
|
||||||
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
|
|
||||||
# Solaris 10 'make', and several other traditional 'make' implementations,
|
|
||||||
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
|
|
||||||
# by disabling -e (using the XSI extension "set +e") if it's set.
|
|
||||||
am__sh_e_setup = case $$- in *e*) set +e;; esac
|
|
||||||
# Default flags passed to test drivers.
|
|
||||||
am__common_driver_flags = \
|
|
||||||
--color-tests "$$am__color_tests" \
|
|
||||||
--enable-hard-errors "$$am__enable_hard_errors" \
|
|
||||||
--expect-failure "$$am__expect_failure"
|
|
||||||
# To be inserted before the command running the test. Creates the
|
|
||||||
# directory for the log if needed. Stores in $dir the directory
|
|
||||||
# containing $f, in $tst the test, in $log the log. Executes the
|
|
||||||
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
|
|
||||||
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
|
|
||||||
# will run the test scripts (or their associated LOG_COMPILER, if
|
|
||||||
# thy have one).
|
|
||||||
am__check_pre = \
|
|
||||||
$(am__sh_e_setup); \
|
|
||||||
$(am__vpath_adj_setup) $(am__vpath_adj) \
|
|
||||||
$(am__tty_colors); \
|
|
||||||
srcdir=$(srcdir); export srcdir; \
|
|
||||||
case "$@" in \
|
|
||||||
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
|
|
||||||
*) am__odir=.;; \
|
|
||||||
esac; \
|
|
||||||
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|
|
||||||
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
|
|
||||||
if test -f "./$$f"; then dir=./; \
|
|
||||||
elif test -f "$$f"; then dir=; \
|
|
||||||
else dir="$(srcdir)/"; fi; \
|
|
||||||
tst=$$dir$$f; log='$@'; \
|
|
||||||
if test -n '$(DISABLE_HARD_ERRORS)'; then \
|
|
||||||
am__enable_hard_errors=no; \
|
|
||||||
else \
|
|
||||||
am__enable_hard_errors=yes; \
|
|
||||||
fi; \
|
|
||||||
case " $(XFAIL_TESTS) " in \
|
|
||||||
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
|
|
||||||
am__expect_failure=yes;; \
|
|
||||||
*) \
|
|
||||||
am__expect_failure=no;; \
|
|
||||||
esac; \
|
|
||||||
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
|
|
||||||
# A shell command to get the names of the tests scripts with any registered
|
|
||||||
# extension removed (i.e., equivalently, the names of the test logs, with
|
|
||||||
# the '.log' extension removed). The result is saved in the shell variable
|
|
||||||
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
|
|
||||||
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
|
|
||||||
# since that might cause problem with VPATH rewrites for suffix-less tests.
|
|
||||||
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
|
|
||||||
am__set_TESTS_bases = \
|
|
||||||
bases='$(TEST_LOGS)'; \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
|
|
||||||
bases=`echo $$bases`
|
|
||||||
RECHECK_LOGS = $(TEST_LOGS)
|
|
||||||
TEST_SUITE_LOG = test-suite.log
|
|
||||||
TEST_EXTENSIONS = @EXEEXT@ .test
|
|
||||||
am__test_logs1 = $(TESTS:=.log)
|
|
||||||
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
|
|
||||||
TEST_LOGS = $(am__test_logs2:.test.log=.log)
|
|
||||||
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
|
|
||||||
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
|
|
||||||
$(TEST_LOG_FLAGS)
|
|
||||||
am__set_b = \
|
|
||||||
case '$@' in \
|
|
||||||
*/*) \
|
|
||||||
case '$*' in \
|
|
||||||
*/*) b='$*';; \
|
|
||||||
*) b=`echo '$@' | sed 's/\.log$$//'`; \
|
|
||||||
esac;; \
|
|
||||||
*) \
|
|
||||||
b='$*';; \
|
|
||||||
esac
|
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
am__relativize = \
|
am__relativize = \
|
||||||
@ -455,6 +252,7 @@ am__relativize = \
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -584,7 +382,7 @@ ATF_TESTS = $(am__append_1)
|
|||||||
all: all-recursive
|
all: all-recursive
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
|
.SUFFIXES: .c .o .obj
|
||||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
@ -1014,162 +812,6 @@ cscopelist-am: $(am__tagged_files)
|
|||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
# Recover from deleted '.trs' file; this should ensure that
|
|
||||||
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
|
|
||||||
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
|
|
||||||
# to avoid problems with "make -n".
|
|
||||||
.log.trs:
|
|
||||||
rm -f $< $@
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $<
|
|
||||||
|
|
||||||
# Leading 'am--fnord' is there to ensure the list of targets does not
|
|
||||||
# expand to empty, as could happen e.g. with make check TESTS=''.
|
|
||||||
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
|
|
||||||
am--force-recheck:
|
|
||||||
@:
|
|
||||||
|
|
||||||
$(TEST_SUITE_LOG): $(TEST_LOGS)
|
|
||||||
@$(am__set_TESTS_bases); \
|
|
||||||
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
|
|
||||||
redo_bases=`for i in $$bases; do \
|
|
||||||
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
|
|
||||||
done`; \
|
|
||||||
if test -n "$$redo_bases"; then \
|
|
||||||
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
|
|
||||||
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
if test -n "$$am__remaking_logs"; then \
|
|
||||||
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
|
|
||||||
"recursion detected" >&2; \
|
|
||||||
else \
|
|
||||||
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
|
|
||||||
fi; \
|
|
||||||
if $(am__make_dryrun); then :; else \
|
|
||||||
st=0; \
|
|
||||||
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
|
|
||||||
for i in $$redo_bases; do \
|
|
||||||
test -f $$i.trs && test -r $$i.trs \
|
|
||||||
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
|
|
||||||
test -f $$i.log && test -r $$i.log \
|
|
||||||
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
|
|
||||||
done; \
|
|
||||||
test $$st -eq 0 || exit 1; \
|
|
||||||
fi
|
|
||||||
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
|
|
||||||
ws='[ ]'; \
|
|
||||||
results=`for b in $$bases; do echo $$b.trs; done`; \
|
|
||||||
test -n "$$results" || results=/dev/null; \
|
|
||||||
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
|
|
||||||
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
|
|
||||||
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
|
|
||||||
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
|
|
||||||
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
|
|
||||||
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
|
|
||||||
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
|
|
||||||
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
|
|
||||||
success=true; \
|
|
||||||
else \
|
|
||||||
success=false; \
|
|
||||||
fi; \
|
|
||||||
br='==================='; br=$$br$$br$$br$$br; \
|
|
||||||
result_count () \
|
|
||||||
{ \
|
|
||||||
if test x"$$1" = x"--maybe-color"; then \
|
|
||||||
maybe_colorize=yes; \
|
|
||||||
elif test x"$$1" = x"--no-color"; then \
|
|
||||||
maybe_colorize=no; \
|
|
||||||
else \
|
|
||||||
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
|
|
||||||
fi; \
|
|
||||||
shift; \
|
|
||||||
desc=$$1 count=$$2; \
|
|
||||||
if test $$maybe_colorize = yes && test $$count -gt 0; then \
|
|
||||||
color_start=$$3 color_end=$$std; \
|
|
||||||
else \
|
|
||||||
color_start= color_end=; \
|
|
||||||
fi; \
|
|
||||||
echo "$${color_start}# $$desc $$count$${color_end}"; \
|
|
||||||
}; \
|
|
||||||
create_testsuite_report () \
|
|
||||||
{ \
|
|
||||||
result_count $$1 "TOTAL:" $$all "$$brg"; \
|
|
||||||
result_count $$1 "PASS: " $$pass "$$grn"; \
|
|
||||||
result_count $$1 "SKIP: " $$skip "$$blu"; \
|
|
||||||
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
|
|
||||||
result_count $$1 "FAIL: " $$fail "$$red"; \
|
|
||||||
result_count $$1 "XPASS:" $$xpass "$$red"; \
|
|
||||||
result_count $$1 "ERROR:" $$error "$$mgn"; \
|
|
||||||
}; \
|
|
||||||
{ \
|
|
||||||
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
|
|
||||||
$(am__rst_title); \
|
|
||||||
create_testsuite_report --no-color; \
|
|
||||||
echo; \
|
|
||||||
echo ".. contents:: :depth: 2"; \
|
|
||||||
echo; \
|
|
||||||
for b in $$bases; do echo $$b; done \
|
|
||||||
| $(am__create_global_log); \
|
|
||||||
} >$(TEST_SUITE_LOG).tmp || exit 1; \
|
|
||||||
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
|
|
||||||
if $$success; then \
|
|
||||||
col="$$grn"; \
|
|
||||||
else \
|
|
||||||
col="$$red"; \
|
|
||||||
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
|
|
||||||
fi; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
|
|
||||||
echo "$${col}$$br$${std}"; \
|
|
||||||
create_testsuite_report --maybe-color; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
if $$success; then :; else \
|
|
||||||
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
|
|
||||||
if test -n "$(PACKAGE_BUGREPORT)"; then \
|
|
||||||
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
|
|
||||||
fi; \
|
|
||||||
echo "$$col$$br$$std"; \
|
|
||||||
fi; \
|
|
||||||
$$success || exit 1
|
|
||||||
|
|
||||||
check-TESTS:
|
|
||||||
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
|
|
||||||
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
trs_list=`for i in $$bases; do echo $$i.trs; done`; \
|
|
||||||
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?;
|
|
||||||
recheck: all $(check_PROGRAMS)
|
|
||||||
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
@set +e; $(am__set_TESTS_bases); \
|
|
||||||
bases=`for i in $$bases; do echo $$i; done \
|
|
||||||
| $(am__list_recheck_tests)` || exit 1; \
|
|
||||||
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
|
||||||
log_list=`echo $$log_list`; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
|
|
||||||
am__force_recheck=am--force-recheck \
|
|
||||||
TEST_LOGS="$$log_list"; \
|
|
||||||
exit $$?
|
|
||||||
.test.log:
|
|
||||||
@p='$<'; \
|
|
||||||
$(am__set_b); \
|
|
||||||
$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
--log-file $$b.log --trs-file $$b.trs \
|
|
||||||
$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
@am__EXEEXT_TRUE@.test$(EXEEXT).log:
|
|
||||||
@am__EXEEXT_TRUE@ @p='$<'; \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__set_b); \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
|
||||||
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
|
|
||||||
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
|
||||||
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
@ -1227,7 +869,6 @@ distdir: $(DISTFILES)
|
|||||||
done
|
done
|
||||||
check-am: all-am
|
check-am: all-am
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
|
||||||
check: check-recursive
|
check: check-recursive
|
||||||
all-am: Makefile
|
all-am: Makefile
|
||||||
installdirs: installdirs-recursive
|
installdirs: installdirs-recursive
|
||||||
@ -1252,9 +893,6 @@ install-strip:
|
|||||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
fi
|
fi
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
|
|
||||||
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
|
|
||||||
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
|
||||||
|
|
||||||
clean-generic:
|
clean-generic:
|
||||||
|
|
||||||
@ -1335,18 +973,17 @@ uninstall-am:
|
|||||||
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
.MAKE: $(am__recursive_targets) check-am install-am install-strip
|
||||||
|
|
||||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||||
check-TESTS check-am clean clean-checkPROGRAMS clean-generic \
|
check-am clean clean-checkPROGRAMS clean-generic cscopelist-am \
|
||||||
cscopelist-am ctags ctags-am distclean distclean-compile \
|
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||||
distclean-generic distclean-tags distdir dvi dvi-am html \
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
html-am info info-am install install-am install-data \
|
install install-am install-data install-data-am install-dvi \
|
||||||
install-data-am install-dvi install-dvi-am install-exec \
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
install-exec-am install-html install-html-am install-info \
|
install-html-am install-info install-info-am install-man \
|
||||||
install-info-am install-man install-pdf install-pdf-am \
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
install-ps install-ps-am install-strip installcheck \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
|
ps ps-am tags tags-am uninstall uninstall-am
|
||||||
uninstall uninstall-am
|
|
||||||
|
|
||||||
|
|
||||||
# for autotools debugging only
|
# for autotools debugging only
|
||||||
@ -1356,7 +993,7 @@ info:
|
|||||||
@echo "ATF_LIBS=$(ATF_LIBS)"
|
@echo "ATF_LIBS=$(ATF_LIBS)"
|
||||||
|
|
||||||
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
@HAVE_ATF_TRUE@check: $(ATF_TESTS)
|
||||||
@HAVE_ATF_TRUE@ atf-run | atf-report
|
@HAVE_ATF_TRUE@ sh ${top_srcdir}/tests/unittest.sh
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
@ -13,7 +13,7 @@ and then opening doc/html/index.html
|
|||||||
Tests Overview
|
Tests Overview
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
In DHCP, a unit test exercises a particular piece of code in
|
In DHCP, a unit test exercises a particular piece of code in
|
||||||
isolation. There is a separate unit test per module or API. Each unit
|
isolation. There is a separate unit test per module or API. Each unit
|
||||||
test lives in a directory beneath the code it is designed to exercise.
|
test lives in a directory beneath the code it is designed to exercise.
|
||||||
So, we (will eventually) have:
|
So, we (will eventually) have:
|
||||||
@ -26,31 +26,57 @@ So, we (will eventually) have:
|
|||||||
And so on.
|
And so on.
|
||||||
|
|
||||||
We are using ATF (Automated Test Framework) as a framework to run our
|
We are using ATF (Automated Test Framework) as a framework to run our
|
||||||
unittests. See ISC DHCP Developer's Guide for much more thorough
|
unit tests. See ISC DHCP Developer's Guide for much more thorough
|
||||||
description of unit-test and ATF framework in general.
|
description of unit-test and ATF framework in general.
|
||||||
|
|
||||||
|
Installing ATF
|
||||||
|
--------------
|
||||||
|
ATF sources can be downloaded from https://github.com/jmmv/kyua. ATF
|
||||||
|
must be configured, compiled and then installed to be available during
|
||||||
|
the DHCP configure procedure. Please follow INSTALL file supplied with
|
||||||
|
ATF sources (it's essentially the typical ./configure && make &&
|
||||||
|
make install procedure).
|
||||||
|
|
||||||
|
Beginning with ATF version 0.16, it is necessary to include the following
|
||||||
|
options --enable-tools and --disable-shared when configuring ATF:
|
||||||
|
|
||||||
|
configure --prefix=<prefix> --enable-tools --disable-shared
|
||||||
|
|
||||||
|
ISC DHCP unittests will run with ATF releases upto 0.19. Beginning with
|
||||||
|
ATF 0.20, the tools, atf-run and atf-report required by ISC DHCP, were
|
||||||
|
deprecated and are no longer included with ATF.
|
||||||
|
|
||||||
Running Unit Tests
|
Running Unit Tests
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
In order to run the unit tests for DHCP, enable ATF support during configure:
|
In order to run the unit tests for DHCP, enable ATF support during configure:
|
||||||
|
|
||||||
$ ./configure --with-atf
|
$ ./configure --with-atf{=<atf-path>}
|
||||||
|
|
||||||
And then use:
|
where <atf-path> is the path into which ATF was installed. This would
|
||||||
|
be same value used for --prefix when ATF was configured (default is
|
||||||
|
/usr/local).
|
||||||
|
|
||||||
|
And then build ISC_DHCP with:
|
||||||
|
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Finally build and run unit tests with:
|
||||||
|
|
||||||
$ make check
|
$ make check
|
||||||
|
|
||||||
This will run all of the unit tests. Make sure that ATF is actually
|
This will traverse the source tree running the unit tests in each unit test
|
||||||
installed and that you have atf-run and atf-report tool in your PATH.
|
subdirectory. Note that if one or more tests in a unit test subdirectory fail
|
||||||
|
the make process will stop. To run all of the tests regardless of outcome,
|
||||||
|
use:
|
||||||
|
|
||||||
You can run a single test by going to the appropriate test directory
|
$ make -k check
|
||||||
|
|
||||||
|
You can run a single test by going to the appropriate test directory
|
||||||
and invoking the test directly:
|
and invoking the test directly:
|
||||||
|
|
||||||
$ cd server/tests
|
$ cd server/tests
|
||||||
$ atf-run | atf-report
|
$ make check
|
||||||
|
|
||||||
There are also a number of options that you can use when running a
|
|
||||||
test. See atf-run and atf-report documentation.
|
|
||||||
|
|
||||||
Adding a New Unit Test
|
Adding a New Unit Test
|
||||||
----------------------
|
----------------------
|
||||||
|
@ -79,14 +79,14 @@ build_triplet = @build@
|
|||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
subdir = tests
|
subdir = tests
|
||||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||||
$(top_srcdir)/depcomp
|
$(srcdir)/unittest.sh.in $(top_srcdir)/depcomp
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(install_sh) -d
|
mkinstalldirs = $(install_sh) -d
|
||||||
CONFIG_HEADER = $(top_builddir)/includes/config.h
|
CONFIG_HEADER = $(top_builddir)/includes/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES = unittest.sh
|
||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
AR = ar
|
AR = ar
|
||||||
ARFLAGS = cru
|
ARFLAGS = cru
|
||||||
@ -156,6 +156,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
ATF_BIN = @ATF_BIN@
|
||||||
ATF_CFLAGS = @ATF_CFLAGS@
|
ATF_CFLAGS = @ATF_CFLAGS@
|
||||||
ATF_LDFLAGS = @ATF_LDFLAGS@
|
ATF_LDFLAGS = @ATF_LDFLAGS@
|
||||||
AUTOCONF = @AUTOCONF@
|
AUTOCONF = @AUTOCONF@
|
||||||
@ -320,6 +321,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|||||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(am__aclocal_m4_deps):
|
$(am__aclocal_m4_deps):
|
||||||
|
unittest.sh: $(top_builddir)/config.status $(srcdir)/unittest.sh.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
|
||||||
clean-checkLIBRARIES:
|
clean-checkLIBRARIES:
|
||||||
-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
|
-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
|
||||||
|
79
tests/unittest.sh.in
Executable file
79
tests/unittest.sh.in
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, and/or 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 ISC DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
# AND FITNESS. IN NO EVENT SHALL ISC 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.
|
||||||
|
#
|
||||||
|
# Script used to execute unit tests described by the Atffile in the current
|
||||||
|
# directory. It exits with return value of atf-run, which will be 0 if all
|
||||||
|
# tests passed, non-zero otherwise.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Add configured path to ATF tools, atf-run and atf-report
|
||||||
|
PATH="@ATF_BIN@:${PATH}"
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
# colors if not outputting to a dumb terminal and stdout is a tty
|
||||||
|
if test "$TERM" != dumb && { test -t 1; } 2>/dev/null; then \
|
||||||
|
red='\033[0;31m'
|
||||||
|
green='\033[0;32m'
|
||||||
|
noclr='\033[0m'
|
||||||
|
|
||||||
|
# if echo supports -e, we must use it to set colors
|
||||||
|
# (output will be "" if its supported)
|
||||||
|
if [ -z "`echo -e`" ]
|
||||||
|
then
|
||||||
|
dash_e="-e"
|
||||||
|
fi
|
||||||
|
fi;
|
||||||
|
|
||||||
|
header="===================================================="
|
||||||
|
|
||||||
|
status=0
|
||||||
|
if [ -n "@ATF_BIN@" -a -f Atffile ]
|
||||||
|
then
|
||||||
|
# run the tests
|
||||||
|
echo "Running unit tests..."
|
||||||
|
atf-run > atf.out
|
||||||
|
status=$?
|
||||||
|
|
||||||
|
# set color based on success/failure
|
||||||
|
if [ $status -eq 0 ]
|
||||||
|
then
|
||||||
|
color=$green
|
||||||
|
else
|
||||||
|
color=$red
|
||||||
|
fi
|
||||||
|
|
||||||
|
# spit out the test report
|
||||||
|
# We print everything upto the summary in
|
||||||
|
# "no color". Print the summary in our
|
||||||
|
# result color.
|
||||||
|
cat atf.out | atf-report | while read line
|
||||||
|
do
|
||||||
|
cnt=`echo $line | grep -c "Summary"`
|
||||||
|
if [ $cnt -eq 1 ]
|
||||||
|
then
|
||||||
|
echo $dash_e $color$header
|
||||||
|
fi
|
||||||
|
echo $line;
|
||||||
|
done
|
||||||
|
echo $dash_e $header$noclr
|
||||||
|
|
||||||
|
# clean up unless there were test failures
|
||||||
|
if [ $status -eq 0 ]
|
||||||
|
then
|
||||||
|
rm -f atf.out
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
exit $status
|
Loading…
x
Reference in New Issue
Block a user