diff options
-rw-r--r-- | Makefile.am | 10 | ||||
-rw-r--r-- | meson.build | 5 | ||||
-rwxr-xr-x | tools/check-nm-autoptr.sh | 26 |
3 files changed, 39 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index 67bcdde132..9109af4c6a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1861,6 +1861,11 @@ nodist_libnminclude_HEADERS += \ EXTRA_DIST += src/libnm-client-public/meson.build +check-local-nm-autoptr: + $(srcdir)/tools/check-nm-autoptr.sh + +check_local += check-local-nm-autoptr + ############################################################################### noinst_PROGRAMS += src/libnm-core-impl/gen-metadata-nm-settings-libnm-core @@ -5792,20 +5797,21 @@ EXTRA_DIST += \ \ src/contrib/nm-vpn-editor-plugin-call.h \ \ + tools/check-compare-generated.sh \ tools/check-config-options.sh \ tools/check-docs.sh \ tools/check-exports.sh \ - tools/check-compare-generated.sh \ tools/check-gitlab-ci.sh \ + tools/check-nm-autoptr.sh \ tools/check-tree.sh \ tools/check-vapi.sh \ tools/create-exports-NetworkManager.sh \ tools/debug-helper.py \ + tools/enums-to-docbook.pl \ tools/meson-post-install.sh \ tools/run-nm-test.sh \ tools/test-networkmanager-service.py \ tools/test-sudo-wrapper.sh \ - tools/enums-to-docbook.pl \ \ src/core/settings/plugins/meson.build \ \ diff --git a/meson.build b/meson.build index 1327513b4c..2f12e13706 100644 --- a/meson.build +++ b/meson.build @@ -946,6 +946,11 @@ test( find_program(join_paths(source_root, 'tools', 'check-vapi.sh')), ) +test( + 'check-nm-autoptr', + find_program(join_paths(source_root, 'tools', 'check-nm-autoptr.sh')), +) + subdir('examples/C/glib') enable_qt = get_option('qt') diff --git a/tools/check-nm-autoptr.sh b/tools/check-nm-autoptr.sh new file mode 100755 index 0000000000..466958c89b --- /dev/null +++ b/tools/check-nm-autoptr.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -e + +die() { + printf "%s\n" "$*" >&2 + exit 1 +} + +cd "$(dirname "$(readlink -f "$0")")/.." || die "cannot change to srcdir" + +AUTOPTR_H=./src/libnm-client-public/nm-autoptr.h + +for s in $( sed -n 's/^ *typedef \+struct \+.*[A-Za-z0-9_]\+ \+\(NMSetting[A-Za-z0-9_]\+\)\> *;$/\1/p' ./src/libnm-core-public/nm-core-types.h ) ; do + grep -q "^ *G_DEFINE_AUTOPTR_CLEANUP_FUNC *( *\\<$s\\> *, *g_object_unref *)" -- "$AUTOPTR_H" || die "didn't see setting '$s' in \"$AUTOPTR_H\"" +done + +for s in $( grep -h -o '\<NMDevice[A-Za-z0-9_]\+\>' ./src/libnm-client-public/nm-device-*.h | sort -u | grep -v 'Class$') ; do + case "$s" in + NMDeviceModemCapabilities| \ + NMDeviceWifiCapabilities) + continue + ;; + esac + grep -q "^ *G_DEFINE_AUTOPTR_CLEANUP_FUNC *( *\\<$s\\> *, *g_object_unref *)" -- "$AUTOPTR_H" || die "didn't see device '$s' in \"$AUTOPTR_H\"" +done |