Chanceler Shaffer
822f0761c7
Merge e4ee5a43dd into 50e8d2ed00
2025-01-19 13:50:07 -06:00
Richard Hansen
63bf3512a4
dnsexit2: Update multiple hosts at a time when possible
2025-01-10 19:20:25 -05:00
Richard Hansen
3b10e37607
tests: dnsexit2: Add test for host outside of zone
2025-01-10 19:20:25 -05:00
Richard Hansen
115f23dead
tests: Option to select which log messages to capture
2025-01-10 19:20:25 -05:00
Richard Hansen
009033d476
tests: Factor out duplicate log capture code
2025-01-10 19:20:25 -05:00
Richard Hansen
b31e5e2f91
tests: dnsexit2: Add test for two hosts in the same zone
2025-01-09 19:33:57 -05:00
Richard Hansen
3b73350541
tests: dnsexit2 Convert tests to table-driven
...
This makes the tests easier to read and extend.
2025-01-09 19:33:57 -05:00
Richard Hansen
6fd9a6f106
tests: Add some tests for use=cmd, usev4=cmdv4, usev6=cmdv6
2025-01-09 19:29:00 -05:00
Richard Hansen
8cf322e162
tests: Only skip HTTPD tests if dependencies are unavailable
...
This prevents the tests from passing due to syntax errors in
the ddclient::t::HTTPD module.
2025-01-08 18:24:04 -05:00
Richard Hansen
ddeaedc136
tests: Add missing semicolon
...
This should have been in commit
06c47695fc . The tests that use this
module did not fail because an import failure is assumed to be caused
by a missing dependency, not a genuine bug.
2025-01-08 18:24:04 -05:00
Richard Hansen
ecaa05abd3
tests: Delete vestigial code
...
This deleted code came from a previous unpublished prior draft of the
tests and was accidentally not deleted when the approach changed.
2025-01-08 18:20:39 -05:00
Richard Hansen
06c47695fc
tests: Fix t/ssl-validate.pl in minimal test environments
2025-01-08 03:33:30 -05:00
Richard Hansen
c89a2d6186
tests: Enable debug logging in t/ssl-validate.pl
2025-01-08 03:33:30 -05:00
Richard Hansen
3f3b8cf825
tests: Localize config setting
...
This isn't strictly necessary, but is good practice because it
guarantees that the config is cleaned up after each test case.
2025-01-08 03:00:41 -05:00
Richard Hansen
54b6d0cb0d
Use semver 2.0.0 as the human-readable version string format
...
This avoids the need to escape tilde in tag names.
2024-12-23 21:40:07 -05:00
Richard Hansen
5cdb4ae91f
fixup! route53: Add support for Amazon AWS Route 53
...
rename `load_sha1_support` to `load_sha_support`
2024-12-19 23:28:14 -05:00
Chanceler Shaffer
4d615d9a84
route53: Add support for Amazon AWS Route 53
2024-12-19 22:54:23 -05:00
Richard Hansen
ad3cd11446
Improve deduplication of redundant use* queries
2024-09-06 18:53:14 -04:00
Richard Hansen
c71f6f6eae
Prefetch the data relevant to the use* strategies
...
This is a preparatory step to improving the deduplication of queries.
It also makes possible future improvements to config validation and
help usage output.
2024-09-06 18:53:14 -04:00
Richard Hansen
5ed43a2e4c
tests: Factor out duplicate HTTP server code
2024-09-06 18:44:19 -04:00
Richard Hansen
62f3759c54
tests: Factor out duplicate IPv6 support detection code
2024-09-06 18:41:37 -04:00
Richard Hansen
9c7c0e55c1
tests: Refine module loads
...
* Wrap all conditional loads in `BEGIN {}` to be closer to the
behavior of `use`.
* Add missing `Test::Warnings`, `HTTP::Request` loads.
* Sort by module name, except load `Test::More` first and
`Test::Warnings` immediately after to maximize checking
effectiveness.
* Return truthy from `eval` block to prevent the `or` case from
executing if the loaded module does not have a final truthy
statement. (Except for `ddclient` because we want to test that it
does have a final truthy statement.)
2024-09-06 18:41:33 -04:00
Richard Hansen
dd7ad1ccf4
tests: dnsexit2: Use reserved IP addresses and domain names
2024-09-06 15:47:05 -04:00
Richard Hansen
d38fcbddb8
tests: dnsexit2: Rename variables to follow got, want pattern
2024-09-06 15:47:05 -04:00
Richard Hansen
d0eb899fc8
tests: dnsexit2: Localize changes to %config
2024-09-06 15:47:05 -04:00
Richard Hansen
e8d79d842c
tests: dnsexit2: Inline unnecessary helper function
...
for readability
2024-09-06 15:47:05 -04:00
Richard Hansen
7653f60058
tests: dnsexit2: Move request to a variable
...
for readability
2024-09-06 15:46:59 -04:00
Richard Hansen
c768f1350b
tests: dnsexit2: Check number of requests
2024-09-06 15:24:16 -04:00
Richard Hansen
e9029b85d5
tests: dnsexit2: Simplify request check
2024-09-06 15:22:55 -04:00
Richard Hansen
bd1e42ac6c
tests: dnsexit2: Declare @requests where used
...
for readability
2024-09-06 15:22:55 -04:00
Richard Hansen
d7861b6d61
tests: Do use parent -norequire instead of modifying ISA
2024-09-06 15:22:55 -04:00
Richard Hansen
6c33ccaa25
tests: Always have a truthy final expression in modules
...
This ensures that `eval { require Module; } or ...` doesn't execute
the `or` case when loading is successful.
2024-09-06 15:22:55 -04:00
Richard Hansen
2ccdd3b19e
tests: Delete obsolete debugging comments
...
All log output goes to stderr, so turning on `debug` or `verbose` will
not interfere with TAP. A better way to debug is to add the following
to whatever scope you think is appropriate:
local $ddclient::globals{debug} = 1;
local $ddclient::globals{verbose} = 1;
2024-09-06 15:22:55 -04:00
Richard Hansen
8b7581287c
tests: update_nics: Test number of web* queries
...
This will be used in a future commit to test deduplication of of
`use*` strategies.
2024-09-06 15:22:46 -04:00
Richard Hansen
b6ac0e6d05
tests: update_nics: Support multiple hosts
...
This will be used in a future commit to test deduplication of `use*`
strategies.
2024-09-06 15:22:37 -04:00
Richard Hansen
f32f7fc29a
tests: update_nics: Fix tracking of update calls
...
The tests weren't failing because there was only one host being
updated at a time, but this will change in a future commit.
2024-09-06 15:22:18 -04:00
Richard Hansen
695c3c4be8
Separate recap variables from configuration variables
2024-09-02 03:55:09 -04:00
Richard Hansen
1e3bebc60d
Object-oriented protocol definitions
...
This improves readability and will make it easier to refactor to fix
issues or add features.
2024-09-02 03:55:09 -04:00
Richard Hansen
268369a05e
Write update status to %recap, not %config
...
Status is not configuration so it doesn't belong in `%config`.
`wantip`, `wantipv4`, and `wantipv6` are still passed along in
`%config` because `group_hosts_by` needs access to them like other
settings.
2024-09-02 03:55:09 -04:00
Richard Hansen
25fac765a0
nic_updateable: Move clearing of update to write_recap
...
for readability (the logic that uses the `update` boolean should be
responsible for clearing it).
2024-09-01 20:08:44 -04:00
Richard Hansen
5256a1d02c
update_nics: Move legacy protocol support to an adapter function
2024-09-01 20:08:27 -04:00
Richard Hansen
f2c9ef6641
read_recap: Scrub recap values without var declarations
2024-09-01 20:05:40 -04:00
Richard Hansen
70e2b51377
read_recap: Don't copy non-recap values to %config
2024-09-01 20:04:45 -04:00
Richard Hansen
989f8be8c3
read_recap: Delete from %config any status values missing from recap
2024-09-01 20:02:58 -04:00
Richard Hansen
c9cdb96086
read_recap: Fix copying of recap values into %config
2024-09-01 20:02:34 -04:00
Richard Hansen
35cbc8d200
read_recap: Reference %recap directly (for readability)
...
There's no need to pass a reference to `%recap` as an argument when
that is the only way `read_recap` is ever used.
2024-09-01 18:08:10 -04:00
Richard Hansen
ce1bcaa68b
nic_updateable: Set warned-min-* in %config, not %recap
...
Currently the semantics of recap variables are that values are updated
in `%config` and propagate to `%recap`. Before this commit,
`warned-min-interval` and `warned-min-error-interval` were set in
`%recap` instead of `%config`, meaning if they followed the semantics
they would be overwritten or deleted when synced with `%config`. Now
the values are set in `%config` to match the behavior of other recap
variables.
2024-09-01 18:08:10 -04:00
Richard Hansen
c943d7c0d9
tests: Add some unit tests for read_recap
2024-09-01 18:05:53 -04:00
Richard Hansen
0a9ee106e4
tests: Debug log when in protocol update callback
2024-09-01 02:44:05 -04:00
Richard Hansen
de5d894c91
Fix handling of legacy status value
...
When a legacy protocol implementation returns, move its `status` and
`ip` results to the new `status-ipv4` and `ipv4` (or `status-ipv6` and
`ipv6`) properties.
Also remove the now-unused `status` variable definition, and remove
`ip` from the recap.
2024-08-22 02:08:39 -04:00