archive/ArchiveLookup: remove "suffix" output parameter

Let the caller do this.  Our GetSuffix() function was broken anyway.
This commit is contained in:
Max Kellermann
2019-05-31 19:01:22 +02:00
parent 508ba22789
commit 12e75a523a
4 changed files with 15 additions and 31 deletions

View File

@@ -8,41 +8,39 @@
TEST(ArchiveTest, Lookup)
{
const char *archive, *inpath, *suffix;
const char *archive, *inpath;
char *path = strdup("");
EXPECT_THROW(archive_lookup(path, &archive, &inpath, &suffix),
EXPECT_THROW(archive_lookup(path, &archive, &inpath),
std::system_error);
free(path);
path = strdup(".");
EXPECT_FALSE(archive_lookup(path, &archive, &inpath, &suffix));
EXPECT_FALSE(archive_lookup(path, &archive, &inpath));
free(path);
path = strdup("config.h");
EXPECT_FALSE(archive_lookup(path, &archive, &inpath, &suffix));
EXPECT_FALSE(archive_lookup(path, &archive, &inpath));
free(path);
path = strdup("src/foo/bar");
EXPECT_THROW(archive_lookup(path, &archive, &inpath, &suffix),
EXPECT_THROW(archive_lookup(path, &archive, &inpath),
std::system_error);
free(path);
fclose(fopen("dummy", "w"));
path = strdup("dummy/foo/bar");
EXPECT_TRUE(archive_lookup(path, &archive, &inpath, &suffix));
EXPECT_TRUE(archive_lookup(path, &archive, &inpath));
EXPECT_EQ((const char *)path, archive);
EXPECT_STREQ(archive, "dummy");
EXPECT_STREQ(inpath, "foo/bar");
EXPECT_EQ((const char *)nullptr, suffix);
free(path);
path = strdup("config.h/foo/bar");
EXPECT_TRUE(archive_lookup(path, &archive, &inpath, &suffix));
EXPECT_TRUE(archive_lookup(path, &archive, &inpath));
EXPECT_EQ((const char *)path, archive);
EXPECT_STREQ(archive, "config.h");
EXPECT_STREQ(inpath, "foo/bar");
EXPECT_STREQ(suffix, "h");
free(path);
}