You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.1 KiB
71 lines
2.1 KiB
// Copyright 2019 The Chromium OS Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Filesystem-related utility functions.
|
|
|
|
#ifndef LIBBRILLO_BRILLO_FILES_FILE_UTIL_TEST_H_
|
|
#define LIBBRILLO_BRILLO_FILES_FILE_UTIL_TEST_H_
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <base/files/scoped_temp_dir.h>
|
|
#include <brillo/files/safe_fd.h>
|
|
#include <gtest/gtest.h>
|
|
|
|
namespace brillo {
|
|
|
|
// Convert the SafeFD::Error enum class to a string for readability of
|
|
// test results.
|
|
std::string to_string(brillo::SafeFD::Error err);
|
|
|
|
// Helper to enable gtest to print SafeFD::Error results in a way that is easier
|
|
// to read.
|
|
std::ostream& operator<<(std::ostream& os, const brillo::SafeFD::Error err);
|
|
|
|
// Gets a short random string that can be used as part of a file name.
|
|
std::string GetRandomSuffix();
|
|
|
|
class FileTest : public testing::Test {
|
|
public:
|
|
static constexpr char kFileName[] = "test.temp";
|
|
static constexpr char kSubdirName[] = "test_dir";
|
|
static constexpr char kSymbolicFileName[] = "sym_test.temp";
|
|
static constexpr char kSymbolicDirName[] = "sym_dir";
|
|
|
|
static void SetUpTestCase();
|
|
|
|
FileTest();
|
|
|
|
protected:
|
|
std::vector<char> temp_dir_path_;
|
|
base::FilePath file_path_;
|
|
base::FilePath sub_dir_path_;
|
|
base::FilePath symlink_file_path_;
|
|
base::FilePath symlink_dir_path_;
|
|
base::ScopedTempDir temp_dir_;
|
|
SafeFD root_;
|
|
|
|
bool SetupSubdir() WARN_UNUSED_RESULT;
|
|
|
|
bool SetupSymlinks() WARN_UNUSED_RESULT;
|
|
|
|
// Writes |contents| to |file_path_|. Pulled into a separate function just
|
|
// to improve readability of tests.
|
|
bool WriteFile(const std::string& contents) WARN_UNUSED_RESULT;
|
|
|
|
// Verifies that the file at |file_path_| exists and contains |contents|.
|
|
void ExpectFileContains(const std::string& contents);
|
|
|
|
// Verifies that the file at |file_path_| has |permissions|.
|
|
void ExpectPermissions(base::FilePath path, int permissions);
|
|
|
|
// Creates a file with a random name in the temporary directory.
|
|
base::FilePath GetTempName() WARN_UNUSED_RESULT;
|
|
};
|
|
|
|
} // namespace brillo
|
|
|
|
#endif // LIBBRILLO_BRILLO_FILES_FILE_UTIL_TEST_H_
|