summaryrefslogtreecommitdiff
diff options
authorMaciej Borzecki <maciej.zenon.borzecki@canonical.com>2019-08-23 12:46:01 +0200
committerMaciej Borzecki <maciej.zenon.borzecki@canonical.com>2019-08-23 12:47:44 +0200
commit31d1575faab8ded50b4b865abebd2c05dff9ca94 (patch)
treefe0ce2426092a7dc3dcc01e72294398f0e1f6c5e
parentac8d580a7bdf7489261f6cbde52ca597cb4351e2 (diff)
cmd/libsnap-confine-private: add checks for parallel instances feature flag
Add handling for parallel instances experimental feature flag. Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
-rw-r--r--cmd/libsnap-confine-private/feature-test.c16
-rw-r--r--cmd/libsnap-confine-private/feature.c3
-rw-r--r--cmd/libsnap-confine-private/feature.h1
3 files changed, 20 insertions, 0 deletions
diff --git a/cmd/libsnap-confine-private/feature-test.c b/cmd/libsnap-confine-private/feature-test.c
index a89f6b7c2f..34a3713b84 100644
--- a/cmd/libsnap-confine-private/feature-test.c
+++ b/cmd/libsnap-confine-private/feature-test.c
@@ -75,6 +75,20 @@ static void test_feature_enabled__present_file(void)
g_assert(sc_feature_enabled(SC_FEATURE_PER_USER_MOUNT_NAMESPACE));
}
+static void test_feature_parallel_instances(void)
+{
+ const char *d = sc_testdir();
+ sc_mock_feature_flag_dir(d);
+
+ g_assert(!sc_feature_enabled(SC_FEATURE_PARALLEL_INSTANCES));
+
+ char pname[PATH_MAX];
+ sc_must_snprintf(pname, sizeof pname, "%s/parallel-instances", d);
+ g_file_set_contents(pname, "", -1, NULL);
+
+ g_assert(sc_feature_enabled(SC_FEATURE_PARALLEL_INSTANCES));
+}
+
static void __attribute__((constructor)) init(void)
{
g_test_add_func("/feature/missing_dir",
@@ -83,4 +97,6 @@ static void __attribute__((constructor)) init(void)
test_feature_enabled__missing_file);
g_test_add_func("/feature/present_file",
test_feature_enabled__present_file);
+ g_test_add_func("/feature/parallel_instances",
+ test_feature_parallel_instances);
}
diff --git a/cmd/libsnap-confine-private/feature.c b/cmd/libsnap-confine-private/feature.c
index 34132a48aa..c9f70d7aec 100644
--- a/cmd/libsnap-confine-private/feature.c
+++ b/cmd/libsnap-confine-private/feature.c
@@ -40,6 +40,9 @@ bool sc_feature_enabled(sc_feature_flag flag)
case SC_FEATURE_REFRESH_APP_AWARENESS:
file_name = "refresh-app-awareness";
break;
+ case SC_FEATURE_PARALLEL_INSTANCES:
+ file_name = "parallel-instances";
+ break;
default:
die("unknown feature flag code %d", flag);
}
diff --git a/cmd/libsnap-confine-private/feature.h b/cmd/libsnap-confine-private/feature.h
index 2b2be2709d..e759d79cee 100644
--- a/cmd/libsnap-confine-private/feature.h
+++ b/cmd/libsnap-confine-private/feature.h
@@ -23,6 +23,7 @@
typedef enum sc_feature_flag {
SC_FEATURE_PER_USER_MOUNT_NAMESPACE,
SC_FEATURE_REFRESH_APP_AWARENESS,
+ SC_FEATURE_PARALLEL_INSTANCES,
} sc_feature_flag;
/**