From 86bbe5bfbc0bf213e9d3fafbe6c64d59b9fc90ea Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 9 Jul 2014 22:29:24 -0400 Subject: [PATCH] test-tables: add new entries One missing string found. A few things had to be moved around to make it possible to test them. --- .gitignore | 1 + Makefile.am | 21 ++++++++++++++++++--- src/bus-proxyd/bus-policy.c | 1 + src/libsystemd/sd-rtnl/rtnl-types.c | 19 ------------------- src/libsystemd/sd-rtnl/rtnl-types.h | 19 +++++++++++++++++++ src/network/test-network-tables.c | 26 ++++++++++++++++++++++++++ src/shared/install.c | 6 +++--- src/shared/install.h | 2 +- src/shared/test-tables.h | 3 +++ src/test/test-tables.c | 23 ++++++++++++++++++++++- 10 files changed, 94 insertions(+), 27 deletions(-) create mode 100644 src/network/test-network-tables.c diff --git a/.gitignore b/.gitignore index eab1f4c32..bf5306410 100644 --- a/.gitignore +++ b/.gitignore @@ -198,6 +198,7 @@ /test-mmap-cache /test-namespace /test-network +/test-network-tables /test-ns /test-path-util /test-prioq diff --git a/Makefile.am b/Makefile.am index 94cd402e7..702513768 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1453,16 +1453,22 @@ test_list_LDADD = \ test_tables_SOURCES = \ src/test/test-tables.c \ - src/shared/test-tables.h + src/shared/test-tables.h \ + src/bus-proxyd/bus-policy.c \ + src/bus-proxyd/bus-policy.h \ + src/journal/journald-server.c \ + src/journal/journald-server.h test_tables_CFLAGS = \ $(AM_CFLAGS) \ - $(SECCOMP_CFLAGS) + $(SECCOMP_CFLAGS) \ + -I$(srcdir)/src/bus-proxyd test_tables_LDADD = \ libsystemd-logs.la \ libsystemd-journal-internal.la \ libsystemd-core.la \ + libudev-core.la \ $(RT_LIBS) test_prioq_SOURCES = \ @@ -4784,8 +4790,17 @@ test_network_CFLAGS = \ test_network_LDADD = \ libsystemd-networkd-core.la +test_network_tables_SOURCES = \ + src/network/test-network-tables.c \ + src/shared/test-tables.h + +test_network_tables_LDADD = \ + libsystemd-networkd-core.la \ + libudev-core.la + tests += \ - test-network + test-network \ + test-network-tables nodist_systemunit_DATA += \ units/systemd-networkd.service \ diff --git a/src/bus-proxyd/bus-policy.c b/src/bus-proxyd/bus-policy.c index 3f1d7557c..06c16a7eb 100644 --- a/src/bus-proxyd/bus-policy.c +++ b/src/bus-proxyd/bus-policy.c @@ -724,5 +724,6 @@ static const char* const policy_item_class_table[_POLICY_ITEM_CLASS_MAX] = { [POLICY_ITEM_OWN_PREFIX] = "own-prefix", [POLICY_ITEM_USER] = "user", [POLICY_ITEM_GROUP] = "group", + [POLICY_ITEM_IGNORE] = "ignore", }; DEFINE_STRING_TABLE_LOOKUP(policy_item_class, PolicyItemClass); diff --git a/src/libsystemd/sd-rtnl/rtnl-types.c b/src/libsystemd/sd-rtnl/rtnl-types.c index 9c3430d1b..ff90895b1 100644 --- a/src/libsystemd/sd-rtnl/rtnl-types.c +++ b/src/libsystemd/sd-rtnl/rtnl-types.c @@ -155,25 +155,6 @@ static const NLType rtnl_link_info_data_ipvti_types[IFLA_VTI_MAX + 1] = { [IFLA_VTI_REMOTE] = { .type = NLA_IN_ADDR }, }; -typedef enum NLUnionLinkInfoData { - NL_UNION_LINK_INFO_DATA_BOND, - NL_UNION_LINK_INFO_DATA_BRIDGE, - NL_UNION_LINK_INFO_DATA_VLAN, - NL_UNION_LINK_INFO_DATA_VETH, - NL_UNION_LINK_INFO_DATA_DUMMY, - NL_UNION_LINK_INFO_DATA_MACVLAN, - NL_UNION_LINK_INFO_DATA_VXLAN, - NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL, - NL_UNION_LINK_INFO_DATA_IPGRE_TUNNEL, - NL_UNION_LINK_INFO_DATA_SIT_TUNNEL, - NL_UNION_LINK_INFO_DATA_VTI_TUNNEL, - _NL_UNION_LINK_INFO_DATA_MAX, - _NL_UNION_LINK_INFO_DATA_INVALID = -1 -} NLUnionLinkInfoData; - -const char *nl_union_link_info_data_to_string(NLUnionLinkInfoData p) _const_; -NLUnionLinkInfoData nl_union_link_info_data_from_string(const char *p) _pure_; - /* these strings must match the .kind entries in the kernel */ static const char* const nl_union_link_info_data_table[_NL_UNION_LINK_INFO_DATA_MAX] = { [NL_UNION_LINK_INFO_DATA_BOND] = "bond", diff --git a/src/libsystemd/sd-rtnl/rtnl-types.h b/src/libsystemd/sd-rtnl/rtnl-types.h index 7ce9597c8..862174601 100644 --- a/src/libsystemd/sd-rtnl/rtnl-types.h +++ b/src/libsystemd/sd-rtnl/rtnl-types.h @@ -63,3 +63,22 @@ int type_system_get_type(const NLTypeSystem *type_system, const NLType **ret, ui int type_system_get_type_system(const NLTypeSystem *type_system, const NLTypeSystem **ret, uint16_t type); int type_system_get_type_system_union(const NLTypeSystem *type_system, const NLTypeSystemUnion **ret, uint16_t type); int type_system_union_get_type_system(const NLTypeSystemUnion *type_system_union, const NLTypeSystem **ret, const char *key); + +typedef enum NLUnionLinkInfoData { + NL_UNION_LINK_INFO_DATA_BOND, + NL_UNION_LINK_INFO_DATA_BRIDGE, + NL_UNION_LINK_INFO_DATA_VLAN, + NL_UNION_LINK_INFO_DATA_VETH, + NL_UNION_LINK_INFO_DATA_DUMMY, + NL_UNION_LINK_INFO_DATA_MACVLAN, + NL_UNION_LINK_INFO_DATA_VXLAN, + NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL, + NL_UNION_LINK_INFO_DATA_IPGRE_TUNNEL, + NL_UNION_LINK_INFO_DATA_SIT_TUNNEL, + NL_UNION_LINK_INFO_DATA_VTI_TUNNEL, + _NL_UNION_LINK_INFO_DATA_MAX, + _NL_UNION_LINK_INFO_DATA_INVALID = -1 +} NLUnionLinkInfoData; + +const char *nl_union_link_info_data_to_string(NLUnionLinkInfoData p) _const_; +NLUnionLinkInfoData nl_union_link_info_data_from_string(const char *p) _pure_; diff --git a/src/network/test-network-tables.c b/src/network/test-network-tables.c new file mode 100644 index 000000000..6f6bb37fc --- /dev/null +++ b/src/network/test-network-tables.c @@ -0,0 +1,26 @@ +#include "networkd.h" +#include "networkd-netdev-bond.h" +#include "networkd-netdev-macvlan.h" +#include "dhcp6-internal.h" +#include "dhcp6-protocol.h" +#include "rtnl-internal.h" +#include "ethtool-util.h" + +#include "test-tables.h" + +int main(int argc, char **argv) { + test_table(bond_mode, NETDEV_BOND_MODE); + /* test_table(link_state, LINK_STATE); -- not a reversible mapping */ + test_table(link_operstate, LINK_OPERSTATE); + test_table(dhcp_support, DHCP_SUPPORT); + test_table(netdev_kind, NETDEV_KIND); + test_table(dhcp6_message_status, DHCP6_STATUS); + test_table(duplex, DUP); + test_table(wol, WOL); + test_table(nl_union_link_info_data, NL_UNION_LINK_INFO_DATA); + + test_table_sparse(macvlan_mode, NETDEV_MACVLAN_MODE); + test_table_sparse(dhcp6_message_type, DHCP6_MESSAGE); + + return EXIT_SUCCESS; +} diff --git a/src/shared/install.c b/src/shared/install.c index bc2a37797..a2f84f893 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -1877,7 +1877,7 @@ int unit_file_preset( assert(scope >= 0); assert(scope < _UNIT_FILE_SCOPE_MAX); - assert(mode < _UNIT_FILE_PRESET_MODE_MAX); + assert(mode < _UNIT_FILE_PRESET_MAX); r = lookup_paths_init_from_scope(&paths, scope, root_dir); if (r < 0) @@ -1945,7 +1945,7 @@ int unit_file_preset_all( assert(scope >= 0); assert(scope < _UNIT_FILE_SCOPE_MAX); - assert(mode < _UNIT_FILE_PRESET_MODE_MAX); + assert(mode < _UNIT_FILE_PRESET_MAX); r = lookup_paths_init_from_scope(&paths, scope, root_dir); if (r < 0) @@ -2182,7 +2182,7 @@ static const char* const unit_file_change_type_table[_UNIT_FILE_CHANGE_TYPE_MAX] DEFINE_STRING_TABLE_LOOKUP(unit_file_change_type, UnitFileChangeType); -static const char* const unit_file_preset_mode_table[_UNIT_FILE_PRESET_MODE_MAX] = { +static const char* const unit_file_preset_mode_table[_UNIT_FILE_PRESET_MAX] = { [UNIT_FILE_PRESET_FULL] = "full", [UNIT_FILE_PRESET_ENABLE_ONLY] = "enable-only", [UNIT_FILE_PRESET_DISABLE_ONLY] = "disable-only", diff --git a/src/shared/install.h b/src/shared/install.h index 91ce192a4..ff16d9f68 100644 --- a/src/shared/install.h +++ b/src/shared/install.h @@ -49,7 +49,7 @@ typedef enum UnitFilePresetMode { UNIT_FILE_PRESET_FULL, UNIT_FILE_PRESET_ENABLE_ONLY, UNIT_FILE_PRESET_DISABLE_ONLY, - _UNIT_FILE_PRESET_MODE_MAX, + _UNIT_FILE_PRESET_MAX, _UNIT_FILE_PRESET_INVALID = -1 } UnitFilePresetMode; diff --git a/src/shared/test-tables.h b/src/shared/test-tables.h index 326130207..3ac8729d7 100644 --- a/src/shared/test-tables.h +++ b/src/shared/test-tables.h @@ -49,3 +49,6 @@ static inline void _test_table(const char *name, #define test_table(lower, upper) \ _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, false) + +#define test_table_sparse(lower, upper) \ + _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, true) diff --git a/src/test/test-tables.c b/src/test/test-tables.c index fb751d13b..9fc4d9372 100644 --- a/src/test/test-tables.c +++ b/src/test/test-tables.c @@ -19,6 +19,7 @@ #include "automount.h" #include "cgroup.h" +#include "compress.h" #include "condition.h" #include "device.h" #include "execute.h" @@ -43,17 +44,26 @@ #include "unit-name.h" #include "unit.h" #include "util.h" +#include "architecture.h" +#include "link-config.h" +#include "bus-policy.h" +#include "journald-server.h" #include "test-tables.h" int main(int argc, char **argv) { + test_table(architecture, ARCHITECTURE); test_table(automount_result, AUTOMOUNT_RESULT); test_table(automount_state, AUTOMOUNT_STATE); + test_table(busname_policy_access, BUSNAME_POLICY_ACCESS); + test_table(busname_result, BUSNAME_RESULT); + test_table(busname_state, BUSNAME_STATE); test_table(cgroup_device_policy, CGROUP_DEVICE_POLICY); test_table(condition_type, CONDITION_TYPE); test_table(device_state, DEVICE_STATE); test_table(exec_input, EXEC_INPUT); test_table(exec_output, EXEC_OUTPUT); + test_table(failure_action, SERVICE_FAILURE_ACTION); test_table(job_mode, JOB_MODE); test_table(job_result, JOB_RESULT); test_table(job_state, JOB_STATE); @@ -61,14 +71,21 @@ int main(int argc, char **argv) { test_table(kill_mode, KILL_MODE); test_table(kill_who, KILL_WHO); test_table(log_target, LOG_TARGET); + test_table(mac_policy, MACPOLICY); + test_table(manager_state, MANAGER_STATE); test_table(mount_exec_command, MOUNT_EXEC_COMMAND); test_table(mount_result, MOUNT_RESULT); test_table(mount_state, MOUNT_STATE); + test_table(name_policy, NAMEPOLICY); test_table(notify_access, NOTIFY_ACCESS); test_table(output_mode, OUTPUT_MODE); test_table(path_result, PATH_RESULT); test_table(path_state, PATH_STATE); test_table(path_type, PATH_TYPE); + test_table(policy_item_class, POLICY_ITEM_CLASS); + test_table(policy_item_type, POLICY_ITEM_TYPE); + test_table(protect_home, PROTECT_HOME); + test_table(protect_system, PROTECT_SYSTEM); test_table(scope_result, SCOPE_RESULT); test_table(scope_state, SCOPE_STATE); test_table(service_exec_command, SERVICE_EXEC_COMMAND); @@ -82,7 +99,8 @@ int main(int argc, char **argv) { test_table(socket_exec_command, SOCKET_EXEC_COMMAND); test_table(socket_result, SOCKET_RESULT); test_table(socket_state, SOCKET_STATE); - test_table(failure_action, SERVICE_FAILURE_ACTION); + test_table(split_mode, SPLIT); + test_table(storage, STORAGE); test_table(swap_exec_command, SWAP_EXEC_COMMAND); test_table(swap_result, SWAP_RESULT); test_table(swap_state, SWAP_STATE); @@ -94,9 +112,12 @@ int main(int argc, char **argv) { test_table(unit_active_state, UNIT_ACTIVE_STATE); test_table(unit_dependency, UNIT_DEPENDENCY); test_table(unit_file_change_type, UNIT_FILE_CHANGE_TYPE); + test_table(unit_file_preset_mode, UNIT_FILE_PRESET); test_table(unit_file_state, UNIT_FILE_STATE); test_table(unit_load_state, UNIT_LOAD_STATE); test_table(unit_type, UNIT_TYPE); + test_table_sparse(object_compressed, OBJECT_COMPRESSED); + return EXIT_SUCCESS; } -- 2.30.2