Files
openvino/inference-engine/tests_deprecated/helpers/tests_file_utils.cpp
2020-04-13 21:17:23 +03:00

63 lines
1.8 KiB
C++

// Copyright (C) 2018-2020 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//
#include <tests_file_utils.hpp>
#include "details/ie_exception.hpp"
#include <fstream>
#include <string>
#include <sys/stat.h>
#include "common_test_utils/file_utils.hpp"
#ifdef __MACH__
# include <mach/clock.h>
# include <mach/mach.h>
#endif
#if defined(WIN32) || defined(WIN64)
// Copied from linux libc sys/stat.h:
# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#endif
using namespace ::testing;
using namespace std;
void FileUtils::readAllFile(const std::string &file_name, void *buffer, size_t maxSize) {
std::ifstream inputFile;
inputFile.open(file_name, std::ios::binary | std::ios::in);
if (!inputFile.is_open()) THROW_IE_EXCEPTION << "cannot open file " << file_name;
if (!inputFile.read(static_cast<char *> (buffer), maxSize)) {
inputFile.close();
THROW_IE_EXCEPTION << "cannot read " << maxSize << " bytes from file " << file_name;
}
inputFile.close();
}
std::string FileUtils::folderOf(const std::string &filepath) {
auto pos = filepath.rfind(CommonTestUtils::FileSeparator);
if (pos == std::string::npos) pos = filepath.rfind(FileSeparator2);
if (pos == std::string::npos) return "";
return filepath.substr(0, pos);
}
std::string FileUtils::fileNameNoExt(const std::string &filepath) {
auto pos = filepath.rfind('.');
if (pos == std::string::npos) return filepath;
return filepath.substr(0, pos);
}
std::string FileUtils::fileExt(const char *filename) {
return fileExt(std::string(filename));
}
std::string FileUtils::fileExt(const std::string &filename) {
auto pos = filename.rfind('.');
if (pos == std::string::npos) return "";
return filename.substr(pos + 1);
}