test_archive.cxx 1.14 KB
Newer Older
1
#include "archive/ArchiveLookup.hxx"
2
#include "util/Compiler.h"
3

4
#include <gtest/gtest.h>
5 6

#include <string.h>
7
#include <stdlib.h>
8

9
TEST(ArchiveTest, Lookup)
10
{
11
	const char *archive, *inpath, *suffix;
12 13

	char *path = strdup("");
14
	EXPECT_FALSE(archive_lookup(path, &archive, &inpath, &suffix));
15
	free(path);
16 17

	path = strdup(".");
18
	EXPECT_FALSE(archive_lookup(path, &archive, &inpath, &suffix));
19
	free(path);
20 21

	path = strdup("config.h");
22
	EXPECT_FALSE(archive_lookup(path, &archive, &inpath, &suffix));
23
	free(path);
24 25

	path = strdup("src/foo/bar");
26
	EXPECT_FALSE(archive_lookup(path, &archive, &inpath, &suffix));
27
	free(path);
28

29 30 31
	fclose(fopen("dummy", "w"));

	path = strdup("dummy/foo/bar");
32 33 34 35 36
	EXPECT_TRUE(archive_lookup(path, &archive, &inpath, &suffix));
	EXPECT_EQ((const char *)path, archive);
	EXPECT_STREQ(archive, "dummy");
	EXPECT_STREQ(inpath, "foo/bar");
	EXPECT_EQ((const char *)nullptr, suffix);
37
	free(path);
38 39

	path = strdup("config.h/foo/bar");
40 41 42 43 44
	EXPECT_TRUE(archive_lookup(path, &archive, &inpath, &suffix));
	EXPECT_EQ((const char *)path, archive);
	EXPECT_STREQ(archive, "config.h");
	EXPECT_STREQ(inpath, "foo/bar");
	EXPECT_STREQ(suffix, "h");
45
	free(path);
46
}