blob: 8b40a6a7e62ec5edaa2bb361156b3158f93fa80f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/*
* Offline config parse test — no UART.
*/
#include "bcpr/bcpr_config.h"
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main(void)
{
const char *path = "share/max25-bcpr.ini.example";
bcpr_config_t cfg;
char cwd[512];
if (!getcwd(cwd, sizeof(cwd))) {
return 1;
}
/* Prefer path relative to build or source. */
if (access(path, R_OK) != 0) {
path = "../share/max25-bcpr.ini.example";
}
if (access(path, R_OK) != 0) {
path = "../../stacks/max25-bcpr/share/max25-bcpr.ini.example";
}
if (bcpr_config_load(&cfg, path) != 0) {
/* Write a minimal temp INI. */
FILE *f = fopen("/tmp/max25-bcpr-test.ini", "w");
if (!f) {
return 1;
}
fputs("[max25-bcpr]\ndry_run = yes\nstate_dir = /tmp/max25-bcpr\n"
"[bc0]\nserial = /dev/ttyS0\niobase = 0x3f8\nirq = 4\n"
"mode = ser12*\nkiss_link = /tmp/max25-bcpr/kiss-bc0\n",
f);
fclose(f);
path = "/tmp/max25-bcpr-test.ini";
if (bcpr_config_load(&cfg, path) != 0) {
fprintf(stderr, "FAIL: load\n");
return 1;
}
}
if (cfg.n_dev < 1 || !cfg.dev[0].enabled) {
fprintf(stderr, "FAIL: no bc0\n");
return 1;
}
if (cfg.dev[0].irq != 4 || cfg.dev[0].iobase != 0x3f8) {
fprintf(stderr, "FAIL: irq/iobase\n");
return 1;
}
puts("OK: test_config_offline");
return 0;
}
|