1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
/***************************************************************
*
* Copyright (C) 2024, Pelican Project, Morgridge Institute for Research
*
* 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 "../src/shortfile.hh"
#include <XrdSys/XrdSysLogger.hh>
#include <gtest/gtest.h>
#include <memory>
#include <string>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
class FileSystemFixtureBase : public testing::Test {
protected:
FileSystemFixtureBase()
: m_log(new XrdSysLogger(2, 0)) // Log to stderr, no log rotation
{}
void SetUp() override {
setenv("XRDINSTANCE", "xrootd", 1);
char tmp_configfn[] = "/tmp/xrootd-s3-gtest.cfg.XXXXXX";
auto result = mkstemp(tmp_configfn);
ASSERT_NE(result, -1) << "Failed to create temp file ("
<< strerror(errno) << ", errno=" << errno << ")";
m_configfn = std::string(tmp_configfn);
auto contents = GetConfig();
ASSERT_FALSE(contents.empty());
ASSERT_TRUE(writeShortFile(m_configfn, contents, 0))
<< "Failed to write to temp file (" << strerror(errno)
<< ", errno=" << errno << ")";
}
void TearDown() override {
if (!m_configfn.empty()) {
auto rv = unlink(m_configfn.c_str());
ASSERT_EQ(rv, 0) << "Failed to delete temp file ("
<< strerror(errno) << ", errno=" << errno << ")";
}
}
virtual std::string GetConfig() = 0;
std::string m_configfn;
std::unique_ptr<XrdSysLogger> m_log;
};
|