blob: 1e5adaaaf9e167e433d28da77f1541d87055243c (
plain) (
blame)
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
54
55
56
57
58
59
60
61
|
#ifndef SPM_FRAMEWORK_H
#define SPM_FRAMEWORK_H
#include <limits.h>
#include <fcntl.h>
union TestValue {
const char *sptr;
char **slptr;
char character;
unsigned int unsigned_integer;
signed int signed_integer;
float floating;
char str[PATH_MAX];
};
struct TestCase {
union TestValue caseValue;
union TestValue inputValue;
union TestValue truthValue;
};
char *array_to_string(char **array, const char *sep) {
char *buffer = NULL;
size_t buffer_size = 0;
size_t records = 0;
if (array == NULL || sep == NULL) {
return NULL;
}
for (records = 0; array[records] != NULL; records++) {
buffer_size += strlen(array[records]) + 1;
}
buffer_size++;
buffer = calloc(buffer_size, sizeof(char));
if (buffer == NULL) {
perror("could not allocate buffer");
exit(1);
}
for (size_t i = 0; i < records; i++) {
for (size_t ch = 0; ch < strlen(array[i]); ch++) {
strncat(buffer, &array[i][ch], 1);
}
if ((records - (i + 1)) > 0)
strncat(buffer, sep, 2);
}
return buffer;
}
#define myassert(condition, ...) \
do { \
if (!(condition)) { \
fprintf(stderr, "%s:%d:%s :: ", __FILE__, __LINE__, __FUNCTION__); \
fprintf(stderr, __VA_ARGS__); \
return 1; \
} \
} while (0)
#endif //SPM_FRAMEWORK_H
|