diff --git a/src/shared/varlink-io.systemd.Resolve.Monitor.c b/src/shared/varlink-io.systemd.Resolve.Monitor.c index 179b9bcf1e2..d95b613eafb 100644 --- a/src/shared/varlink-io.systemd.Resolve.Monitor.c +++ b/src/shared/varlink-io.systemd.Resolve.Monitor.c @@ -25,7 +25,46 @@ VARLINK_DEFINE_STRUCT_TYPE( VARLINK_DEFINE_FIELD(refresh, VARLINK_INT, VARLINK_NULLABLE), VARLINK_DEFINE_FIELD(expire, VARLINK_INT, VARLINK_NULLABLE), VARLINK_DEFINE_FIELD(minimum, VARLINK_INT, VARLINK_NULLABLE), - VARLINK_DEFINE_FIELD(exchange, VARLINK_STRING, VARLINK_NULLABLE)); + VARLINK_DEFINE_FIELD(exchange, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(version, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(size, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(horiz_pre, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(vert_pre, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(latitude, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(longitude, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(altitude, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(keyTag, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(algorithm, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(digestType, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(digest, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(fptype, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(fingerprint, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(flags, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(protocol, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(dnskey, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(signer, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(typeCovered, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(labels, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(originalTtl, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(expiration, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(inception, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(signature, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(nextDomain, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(types, VARLINK_INT, VARLINK_NULLABLE|VARLINK_ARRAY), + VARLINK_DEFINE_FIELD(iterations, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(salt, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(hash, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(certUsage, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(selector, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(matchingType, VARLINK_INT, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(data, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(tag, VARLINK_STRING, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(value, VARLINK_STRING, VARLINK_NULLABLE)); + +VARLINK_DEFINE_STRUCT_TYPE( + ResourceRecordArray, + VARLINK_DEFINE_FIELD_BY_TYPE(rr, ResourceRecord, VARLINK_NULLABLE), + VARLINK_DEFINE_FIELD(raw, VARLINK_STRING, 0)); VARLINK_DEFINE_STRUCT_TYPE( Answer, @@ -48,7 +87,7 @@ VARLINK_DEFINE_METHOD( VARLINK_DEFINE_STRUCT_TYPE( CacheEntry, VARLINK_DEFINE_FIELD_BY_TYPE(key, ResourceKey, 0), - VARLINK_DEFINE_FIELD_BY_TYPE(rrs, ResourceRecord, VARLINK_NULLABLE|VARLINK_ARRAY), + VARLINK_DEFINE_FIELD_BY_TYPE(rrs, ResourceRecordArray, VARLINK_NULLABLE|VARLINK_ARRAY), VARLINK_DEFINE_FIELD(type, VARLINK_STRING, VARLINK_NULLABLE), VARLINK_DEFINE_FIELD(until, VARLINK_INT, 0)); @@ -127,6 +166,7 @@ VARLINK_DEFINE_INTERFACE( &vl_method_ResetStatistics, &vl_type_ResourceKey, &vl_type_ResourceRecord, + &vl_type_ResourceRecordArray, &vl_type_Answer, &vl_type_CacheEntry, &vl_type_ScopeCache, diff --git a/src/shared/varlink-org.varlink.service.c b/src/shared/varlink-org.varlink.service.c index 36dc68fd262..e5122c08be1 100644 --- a/src/shared/varlink-org.varlink.service.c +++ b/src/shared/varlink-org.varlink.service.c @@ -12,7 +12,8 @@ static VARLINK_DEFINE_METHOD( static VARLINK_DEFINE_METHOD( GetInterfaceDescription, - VARLINK_DEFINE_OUTPUT(interface, VARLINK_STRING, 0)); + VARLINK_DEFINE_INPUT(interface, VARLINK_STRING, 0), + VARLINK_DEFINE_OUTPUT(description, VARLINK_STRING, 0)); static VARLINK_DEFINE_ERROR( InterfaceNotFound, diff --git a/test/test-functions b/test/test-functions index b054892e172..556346d7d57 100644 --- a/test/test-functions +++ b/test/test-functions @@ -1929,6 +1929,7 @@ check_result_nspawn_unittests() { check_coverage_reports "$workspace" || ret=5 save_journal "$workspace/var/log/journal" $ret + echo "${JOURNAL_LIST:-"No journals were saved"}" _umount_dir "${initdir:?}" @@ -1962,6 +1963,7 @@ check_result_qemu_unittests() { check_coverage_reports "$initdir" || ret=5 save_journal "$initdir/var/log/journal" $ret + echo "${JOURNAL_LIST:-"No journals were saved"}" _umount_dir "$initdir" diff --git a/test/testsuite-80.units/fdstore-nopin.service b/test/testsuite-80.units/fdstore-nopin.service index 58a687a411c..29ffd230336 100644 --- a/test/testsuite-80.units/fdstore-nopin.service +++ b/test/testsuite-80.units/fdstore-nopin.service @@ -4,5 +4,3 @@ NotifyAccess=all FileDescriptorStoreMax=10 FileDescriptorStorePreserve=restart ExecStart=/usr/lib/systemd/tests/testdata/testsuite-80.units/fdstore-pin.sh 0 -StandardOutput=journal+console -StandardError=journal+console diff --git a/test/testsuite-80.units/fdstore-pin.service b/test/testsuite-80.units/fdstore-pin.service index bc78ee0a4cb..913daa2725b 100644 --- a/test/testsuite-80.units/fdstore-pin.service +++ b/test/testsuite-80.units/fdstore-pin.service @@ -4,5 +4,3 @@ NotifyAccess=all FileDescriptorStoreMax=10 FileDescriptorStorePreserve=yes ExecStart=/usr/lib/systemd/tests/testdata/testsuite-80.units/fdstore-pin.sh 1 -StandardOutput=journal+console -StandardError=journal+console diff --git a/test/units/autorelabel.service b/test/units/autorelabel.service index dd0df8161bf..7e5f9a2b89b 100644 --- a/test/units/autorelabel.service +++ b/test/units/autorelabel.service @@ -14,7 +14,6 @@ ExecStart=sh -xec 'echo 0 >/sys/fs/selinux/enforce; fixfiles -f -F relabel; rm / Type=oneshot TimeoutSec=infinity RemainAfterExit=yes -StandardOutput=journal+console [Install] WantedBy=basic.target diff --git a/test/units/end.service b/test/units/end.service index 3626741258a..50a68b9dd49 100644 --- a/test/units/end.service +++ b/test/units/end.service @@ -7,5 +7,5 @@ OnFailureJobMode=replace-irreversibly [Service] Type=oneshot -ExecStart=/bin/sh -x -c 'systemctl poweroff --no-block' +ExecStart=/usr/lib/systemd/tests/testdata/units/end.sh TimeoutStartSec=5m diff --git a/test/units/end.sh b/test/units/end.sh new file mode 100755 index 00000000000..dd50654f8d1 --- /dev/null +++ b/test/units/end.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: LGPL-2.1-or-later + +set -eux +set -o pipefail + +(! journalctl -q -o short-monotonic --grep "didn't pass validation" >>/failed) + +systemctl poweroff --no-block +exit 0 diff --git a/test/units/testsuite-02.sh b/test/units/testsuite-02.sh index 210bfcbad2f..2a3cb08c43c 100755 --- a/test/units/testsuite-02.sh +++ b/test/units/testsuite-02.sh @@ -63,9 +63,6 @@ report_result() { echo "$name OK" echo "$name" >>/testok fi - - systemd-cat echo "--- $name ---" - systemd-cat cat "/$name.log" } set +x diff --git a/test/units/testsuite-75.service b/test/units/testsuite-75.service index 1b0cd56ee45..111cde30ee2 100644 --- a/test/units/testsuite-75.service +++ b/test/units/testsuite-75.service @@ -6,5 +6,3 @@ Description=Tests for systemd-resolved ExecStartPre=rm -f /failed /testok ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh Type=oneshot -StandardOutput=journal+console -StandardError=journal+console diff --git a/test/units/testsuite-75.sh b/test/units/testsuite-75.sh index 94321ca7e5f..064dd3807a9 100755 --- a/test/units/testsuite-75.sh +++ b/test/units/testsuite-75.sh @@ -530,6 +530,11 @@ grep -qF "fd00:dead:beef:cafe::123" "$RUN_OUT" #run dig +dnssec this.does.not.exist.untrusted.test #grep -qF "status: NXDOMAIN" "$RUN_OUT" +### Test resolvectl show-cache +run resolvectl show-cache +run resolvectl show-cache --json=short +run resolvectl show-cache --json=pretty + # Issue: https://github.com/systemd/systemd/issues/29580 (part #1) dig @127.0.0.54 signed.test diff --git a/test/units/testsuite-80.service b/test/units/testsuite-80.service index 82b08a1c8b0..4c7f5d5ebd3 100644 --- a/test/units/testsuite-80.service +++ b/test/units/testsuite-80.service @@ -6,5 +6,3 @@ Description=TEST-80-NOTIFYACCESS ExecStartPre=rm -f /failed /testok ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh Type=oneshot -StandardOutput=journal+console -StandardError=journal+console diff --git a/test/units/testsuite-80.sh b/test/units/testsuite-80.sh index faadb555b10..97b222a9e89 100755 --- a/test/units/testsuite-80.sh +++ b/test/units/testsuite-80.sh @@ -65,7 +65,7 @@ EOF chmod +x "$MYSCRIPT" MYUNIT="myunit$RANDOM.service" -systemd-run -u "$MYUNIT" -p Type=notify -p StandardOutput=journal+console -p StandardError=journal+console -p FileDescriptorStoreMax=7 "$MYSCRIPT" +systemd-run -u "$MYUNIT" -p Type=notify -p FileDescriptorStoreMax=7 "$MYSCRIPT" test "$(systemd-analyze fdstore "$MYUNIT" | wc -l)" -eq 2 systemd-analyze fdstore "$MYUNIT" --json=short