blob: 0aa00ea868ff1c170375df524dfdab0026cd8a2e [file] [log] [blame]
Austin Schuhc243b422020-10-11 15:35:08 -07001#include "aos/testing/tmpdir.h"
2
3#include <cstdlib>
4#include <string>
5
Austin Schuh99f7c6a2024-06-25 22:07:44 -07006#include "absl/flags/flag.h"
7
Adam Snaiderc8b7e752023-09-14 14:27:53 -07008#include "aos/ipc_lib/shm_base.h"
9
Stephan Pleinesf63bde82024-01-13 15:59:33 -080010namespace aos::testing {
Austin Schuhc243b422020-10-11 15:35:08 -070011
Adam Snaiderc8b7e752023-09-14 14:27:53 -070012namespace {
13std::string TestTmpDirOr(std::string fallback) {
Austin Schuhc243b422020-10-11 15:35:08 -070014 const char *tmp_dir = std::getenv("TEST_TMPDIR");
15 if (tmp_dir != nullptr) {
16 return tmp_dir;
17 }
Adam Snaiderc8b7e752023-09-14 14:27:53 -070018 return fallback;
Austin Schuhc243b422020-10-11 15:35:08 -070019}
Adam Snaiderc8b7e752023-09-14 14:27:53 -070020} // namespace
21
22std::string TestTmpDir() { return TestTmpDirOr("/tmp"); }
23
Austin Schuh99f7c6a2024-06-25 22:07:44 -070024void SetTestShmBase() {
25 SetShmBase(TestTmpDirOr(absl::GetFlag(FLAGS_shm_base)));
26}
Austin Schuhc243b422020-10-11 15:35:08 -070027
Stephan Pleinesf63bde82024-01-13 15:59:33 -080028} // namespace aos::testing