4
4
#include < fstream>
5
5
#include < sstream>
6
6
#include < string>
7
+ #include < cstring>
7
8
8
9
#include < gtest/gtest.h>
9
10
#include < gmock/gmock.h>
@@ -53,10 +54,7 @@ TEST(Zipmerge, FindEocd) {
53
54
EXPECT_EQ (find_eocd (buf, sizeof (buf)), buf + 101 );
54
55
}
55
56
56
- const size_t num_hash_bytes = 128 / 8 ;
57
- const size_t num_hash_uint64s = 2 ;
58
-
59
- std::string read_file (std::string_view filename) {
57
+ std::string read_file (const std::string& filename) {
60
58
std::ifstream f (filename, std::ios::binary);
61
59
EXPECT_TRUE (f) << " Could not open '" << filename << " ' (" << std::strerror (errno) << " )" ;
62
60
if (!f) {
@@ -68,12 +66,12 @@ std::string read_file(std::string_view filename) {
68
66
}
69
67
70
68
std::string get_file (const char * name) {
71
- static auto runfiles = []{
72
- std::string error;
73
- auto ret = Runfiles::CreateForTest (&error);
74
- EXPECT_TRUE (ret) << error;
75
- return ret;
76
- }();
69
+ static auto runfiles = [] {
70
+ std::string error;
71
+ auto ret = Runfiles::CreateForTest (&error);
72
+ EXPECT_TRUE (ret) << error;
73
+ return ret;
74
+ }();
77
75
return runfiles->Rlocation (" _main/misc/bazel/internal/zipmerge/test-files/" s + name);
78
76
}
79
77
@@ -90,7 +88,7 @@ template <typename... Args>
90
88
const char * zipmerge (Args*... inputs) {
91
89
reset ();
92
90
const char * output = nullptr ;
93
- std::vector<const char * > args{" self" };
91
+ std::vector<std::string > args{" self" };
94
92
std::array<const char *, sizeof ...(Args)> flags{{inputs...}};
95
93
auto i = 0u ;
96
94
for (; i < flags.size () && std::string_view{flags[i]}.starts_with (" -" ); ++i) {
@@ -102,7 +100,10 @@ const char* zipmerge(Args*... inputs) {
102
100
for (; i < flags.size (); ++i) {
103
101
args.push_back (std::string_view{flags[i]}.starts_with (" -" ) ? flags[i] : get_file (flags[i]));
104
102
}
105
- EXPECT_EQ (zipmerge_main (args.size (), args.data ()), 0 );
103
+ std::vector<const char *> argv;
104
+ std::transform (args.begin (), args.end (), std::back_inserter (argv),
105
+ [](const std::string& s) { return s.c_str (); });
106
+ EXPECT_EQ (zipmerge_main (argv.size (), argv.data ()), 0 );
106
107
return output;
107
108
}
108
109
0 commit comments