]> git.proxmox.com Git - mirror_lxc.git/blame - src/tests/getkeys.c
tests: include config.h
[mirror_lxc.git] / src / tests / getkeys.c
CommitLineData
72d0e1cb
SG
1/* liblxcapi
2 *
3 * Copyright © 2012 Serge Hallyn <serge.hallyn@ubuntu.com>.
4 * Copyright © 2012 Canonical Ltd.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2, as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
72d0e1cb 19
e49c56d6
CB
20#include "config.h"
21
c8313003 22#include <errno.h>
72d0e1cb
SG
23#include <signal.h>
24#include <stdio.h>
c8313003
CB
25#include <stdlib.h>
26#include <string.h>
27#include <unistd.h>
72d0e1cb
SG
28#include <sys/types.h>
29#include <sys/wait.h>
c8313003
CB
30#include <lxc/lxccontainer.h>
31
f2363e38 32#include "lxc/state.h"
72d0e1cb
SG
33
34#define MYNAME "lxctest1"
35
36int main(int argc, char *argv[])
37{
38 struct lxc_container *c;
39 int len, ret;
38b280ca 40 char v3[2048];
72d0e1cb 41
afeecbba 42 if ((c = lxc_container_new(MYNAME, NULL)) == NULL) {
72d0e1cb
SG
43 fprintf(stderr, "%d: error opening lxc_container %s\n", __LINE__, MYNAME);
44 ret = 1;
45 goto out;
46 }
47
6fba98b5 48 c->set_config_item(c, "lxc.net.0.type", "veth");
72d0e1cb
SG
49
50 len = c->get_keys(c, NULL, NULL, 0);
51 if (len < 0) {
52 fprintf(stderr, "%d: failed to get length of all keys (%d)\n", __LINE__, len);
53 ret = 1;
54 goto out;
55 }
af866059 56
72d0e1cb
SG
57 ret = c->get_keys(c, NULL, v3, len+1);
58 if (ret != len) {
59 fprintf(stderr, "%d: failed to get keys (%d)\n", __LINE__, ret);
60 ret = 1;
61 goto out;
62 }
63 printf("get_keys returned %d\n%s", ret, v3);
64
6fba98b5 65 ret = c->get_keys(c, "lxc.net.0", v3, 2000);
72d0e1cb
SG
66 if (ret < 0) {
67 fprintf(stderr, "%d: failed to get nic 0 keys(%d)\n", __LINE__, ret);
68 ret = 1;
69 goto out;
70 }
71 printf("get_keys for nic 1 returned %d\n%s", ret, v3);
c8313003
CB
72
73 ret = c->get_keys(c, "lxc.apparmor", v3, 2000);
74 if (ret < 0) {
75 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
76 ret = 1;
77 goto out;
78 }
79 printf("get_keys returned %d\n%s", ret, v3);
80
81 ret = c->get_keys(c, "lxc.selinux", v3, 2000);
82 if (ret < 0) {
83 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
84 ret = 1;
85 goto out;
86 }
87 printf("get_keys returned %d\n%s", ret, v3);
88
89 ret = c->get_keys(c, "lxc.mount", v3, 2000);
90 if (ret < 0) {
91 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
92 ret = 1;
93 goto out;
94 }
95 printf("get_keys returned %d\n%s", ret, v3);
96
97 ret = c->get_keys(c, "lxc.rootfs", v3, 2000);
98 if (ret < 0) {
99 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
100 ret = 1;
101 goto out;
102 }
103 printf("get_keys returned %d\n%s", ret, v3);
104
105 ret = c->get_keys(c, "lxc.uts", v3, 2000);
106 if (ret < 0) {
107 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
108 ret = 1;
109 goto out;
110 }
111 printf("get_keys returned %d\n%s", ret, v3);
112
113 ret = c->get_keys(c, "lxc.hook", v3, 2000);
114 if (ret < 0) {
115 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
116 ret = 1;
117 goto out;
118 }
119 printf("get_keys returned %d\n%s", ret, v3);
120
121 ret = c->get_keys(c, "lxc.cap", v3, 2000);
122 if (ret < 0) {
123 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
124 ret = 1;
125 goto out;
126 }
127 printf("get_keys returned %d\n%s", ret, v3);
128
129 ret = c->get_keys(c, "lxc.console", v3, 2000);
130 if (ret < 0) {
131 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
132 ret = 1;
133 goto out;
134 }
135 printf("get_keys returned %d\n%s", ret, v3);
136
137 ret = c->get_keys(c, "lxc.seccomp", v3, 2000);
138 if (ret < 0) {
139 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
140 ret = 1;
141 goto out;
142 }
143 printf("get_keys returned %d\n%s", ret, v3);
144
145 ret = c->get_keys(c, "lxc.signal", v3, 2000);
146 if (ret < 0) {
147 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
148 ret = 1;
149 goto out;
150 }
151 printf("get_keys returned %d\n%s", ret, v3);
152
153 ret = c->get_keys(c, "lxc.start", v3, 2000);
154 if (ret < 0) {
155 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
156 ret = 1;
157 goto out;
158 }
159 printf("get_keys returned %d\n%s", ret, v3);
160
161 ret = c->get_keys(c, "lxc.monitor", v3, 2000);
162 if (ret < 0) {
163 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
164 ret = 1;
165 goto out;
166 }
167 printf("get_keys returned %d\n%s", ret, v3);
168
dae8c253
CB
169 ret = c->get_keys(c, "lxc.cgroup", v3, 2000);
170 if (ret < 0) {
171 fprintf(stderr, "%d: failed to get keys(%d)\n", __LINE__, ret);
172 ret = 1;
173 goto out;
174 }
175 printf("get_keys returned %d\n%s", ret, v3);
176
243cae25 177 ret = 0;
72d0e1cb
SG
178
179out:
180 lxc_container_put(c);
181 exit(ret);
182}