aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_spm_get_package_info_str.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/test_spm_get_package_info_str.c b/tests/test_spm_get_package_info_str.c
new file mode 100644
index 0000000..c228ccb
--- /dev/null
+++ b/tests/test_spm_get_package_info_str.c
@@ -0,0 +1,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;
+} \ No newline at end of file