diff options
author | Sasha Smundak <asmundak@google.com> | 2016-07-15 19:54:14 +0000 |
---|---|---|
committer | Yun Peng <pcloudy@google.com> | 2016-07-18 10:43:50 +0000 |
commit | bdc2ecbb1b415161c45359d612ec60fa219c45fb (patch) | |
tree | ad38edaa0a15f63076020a786cd17b48cac607f6 /src/tools/singlejar/test_util.h | |
parent | 06a12e561268f67de6a417315944f8e4d05afc0f (diff) |
Refactor test utilities.
--
MOS_MIGRATED_REVID=127569037
Diffstat (limited to 'src/tools/singlejar/test_util.h')
-rw-r--r-- | src/tools/singlejar/test_util.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/tools/singlejar/test_util.h b/src/tools/singlejar/test_util.h new file mode 100644 index 0000000000..4f92376ee4 --- /dev/null +++ b/src/tools/singlejar/test_util.h @@ -0,0 +1,55 @@ +#ifndef SRC_TOOLS_SINGLEJAR_TEST_UTIL_H_ +#define SRC_TOOLS_SINGLEJAR_TEST_UTIL_H_ +// Copyright 2016 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include <sys/types.h> +#include <fcntl.h> +#include <stdlib.h> +#include <unistd.h> + +#include <string> + +class TestUtil { + public: + // Allocate a file with given name and size. The contents is zeroes. + static bool AllocateFile(const char *name, size_t size) { + int fd = open(name, O_CREAT | O_RDWR | O_TRUNC, 0777); + if (fd < 0) { + perror(name); + return false; + } + if (size) { + if (ftruncate(fd, size) == 0) { + return close(fd) == 0; + } else { + auto last_error = errno; + close(fd); + errno = last_error; + return false; + } + } else { + return close(fd) == 0; + } + } + + // List zip file contents. + static void LsZip(const char *zip_name) { +#if !defined(__APPLE__) + std::string command = (std::string("unzip -v ") + zip_name).c_str(); + system(command.c_str()); +#endif + } +}; +#endif // SRC_TOOLS_SINGLEJAR_TEST_UTIL_H_ |