if platform == 'windows':
cflags = ['/nologo', '/Zi', '/W4', '/WX', '/wd4530', '/wd4100', '/wd4706',
'/wd4512', '/wd4800', '/wd4702', '/wd4819', '/GR-',
+ # Disable size_t -> int truncation warning.
+ # We never have strings or arrays larger than 2**31.
+ '/wd4267',
'/DNOMINMAX', '/D_CRT_SECURE_NO_WARNINGS',
'/DNINJA_PYTHON="%s"' % options.with_python]
ldflags = ['/DEBUG', '/libpath:$builddir']
string err;
char buf[200];
- int len = strlen(kPath);
+ size_t len = strlen(kPath);
strcpy(buf, kPath);
for (int j = 0; j < 5; ++j) {
#include "build_log.h"
+#include <algorithm>
+using namespace std;
+
+#include <time.h>
+
int random(int low, int high) {
return int(low + (rand() / double(RAND_MAX)) * (high - low) + 0.5);
}
int len = random(5, 100);
*s = new char[len];
for (int i = 0; i < len; ++i)
- (*s)[i] = random(32, 127);
+ (*s)[i] = (char)random(32, 127);
}
int main() {
char** commands = new char*[N];
pair<uint64_t, int>* hashes = new pair<uint64_t, int>[N];
- srand(time(NULL));
+ srand((int)time(NULL));
for (int i = 0; i < N; ++i) {
RandomCommand(&commands[i]);
TEST(CanonicalizePath, NotNullTerminated) {
string path;
string err;
- int len;
+ size_t len;
path = "foo/. bar/.";
len = strlen("foo/."); // Canonicalize only the part before the space.
EXPECT_TRUE(CanonicalizePath(&path[0], &len, &err));
- EXPECT_EQ(strlen("foo"), static_cast<size_t>(len));
+ EXPECT_EQ(strlen("foo"), len);
EXPECT_EQ("foo/. bar/.", string(path));
path = "foo/../file bar/.";
len = strlen("foo/../file");
EXPECT_TRUE(CanonicalizePath(&path[0], &len, &err));
- EXPECT_EQ(strlen("file"), static_cast<size_t>(len));
+ EXPECT_EQ(strlen("file"), len);
EXPECT_EQ("file ./file bar/.", string(path));
}