unit-tests: add a helper function checking if a plugin feature is available
authorMartin Willi <martin@revosec.ch>
Tue, 9 Apr 2013 13:05:24 +0000 (15:05 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 21 Jun 2013 08:53:21 +0000 (10:53 +0200)
src/libstrongswan/tests/test_runner.c

index 9d54b18..35642cb 100644 (file)
 #include "test_runner.h"
 
 #include <library.h>
+#include <plugins/plugin_feature.h>
+
+/**
+ * Check if the plugin configuration provides a specific feature
+ */
+static bool has_feature(plugin_feature_t feature)
+{
+       enumerator_t *plugins, *features;
+       plugin_t *plugin;
+       linked_list_t *list;
+       plugin_feature_t *current;
+       bool found = FALSE;
+
+       plugins = lib->plugins->create_plugin_enumerator(lib->plugins);
+       while (plugins->enumerate(plugins, &plugin, &list))
+       {
+               features = list->create_enumerator(list);
+               while (features->enumerate(features, &current))
+               {
+                       if (plugin_feature_matches(&feature, current))
+                       {
+                               found = TRUE;
+                               break;
+                       }
+               }
+               features->destroy(features);
+               list->destroy(list);
+       }
+       plugins->destroy(plugins);
+
+       return found;
+}
 
 int main()
 {