config: Split interface configuration from network configuration
[petitboot] / lib / pb-config / storage-test.c
1
2 #include <string.h>
3 #include <stdlib.h>
4 #include <sys/types.h>
5 #include <sys/wait.h>
6
7 #include "pb-config.h"
8 #include "storage.h"
9
10 struct interface_config net1 = {
11         .hwaddr = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 },
12         .method = CONFIG_METHOD_DHCP,
13 };
14
15 struct interface_config net2 = {
16         .hwaddr = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x56 },
17         .method = CONFIG_METHOD_STATIC,
18         .static_config = {
19                 .address = "192.168.0.2/24",
20                 .gateway = "192.168.0.1",
21         },
22 };
23
24 struct interface_config *interface_configs[] = { &net1, &net2 };
25
26 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
27
28 struct config test_config = {
29         .autoboot_enabled = true,
30         .network = {
31                 .interfaces = interface_configs,
32                 .n_interfaces = ARRAY_SIZE(interface_configs),
33         }
34 };
35
36 struct test_storage {
37         struct config_storage   storage;
38         struct param            *params;
39         int                     n_params;
40 };
41
42 static int load(struct config_storage *st __attribute__((unused)),
43                 struct config *config)
44 {
45         memcpy(config, &test_config, sizeof(test_config));
46         return 0;
47 }
48
49 static struct test_storage st = {
50         .storage = {
51                 .load  = load,
52         },
53 };
54
55 struct config_storage *create_test_storage(void *ctx __attribute__((unused)))
56 {
57         return &st.storage;
58 }