aboutsummaryrefslogtreecommitdiff
path: root/tests/test_spm_get_package_info_str.c
blob: c228ccb79d0a844be112cd734c6b16d4556ed78b (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
#include "spm.h"
#include "framework.h"

ManifestPackage TESTPKG = {.name = "test", .version = "1.0.0", .revision = "1", .archive = "test-1.0.0-1.tar.gz", .origin = "test_land", .size = 1234};
const char *testFmt = "returned '%s', expected '%s'\n";
char *truth[] = {
        "test 1.0.0 1 test-1.0.0-1.tar.gz test_land 1234 1.21K",
        "      test 1.0.0 1 test-1.0.0-1.tar.gz test_land 1234 1.21K",
        "test       1.0.0 1 test-1.0.0-1.tar.gz test_land 1234 1.21K",
        "test       1.0.0-1   ",
        "      test    1.0.0-1",
};
size_t numCases = 0;

int main(int argc, char *argv[]) {
    ManifestPackage *package = &TESTPKG;
    char *data[] = {
            spm_get_package_info_str(package, "%n %v %r %a %o %s %S"),
            spm_get_package_info_str(package, "%10n %v %r %a %o %s %S"),
            spm_get_package_info_str(package, "%-10n %v %r %a %o %s %S"),
            spm_get_package_info_str(package, "%-10n %-10V"),
            spm_get_package_info_str(package, "%10n %10V"),
    };
    numCases = sizeof(data) / sizeof(char *);

    if (numCases != (sizeof(truth) / sizeof(char *))) {
        fprintf(stderr, "Number of test cases does not match number of truth cases\n");
        return 1;
    }

    for (size_t i = 0; i < numCases; i++) {
        puts(data[i]);
        myassert(strcmp(data[i], truth[i]) == 0, testFmt, data[i], truth[i]);
        free(data[i]);
    }

    return 0;
}