diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
| commit | 4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch) | |
| tree | 1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/util/procparser_test.cpp | |
| parent | aa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff) | |
| parent | 8f0827553e09872941945a093b647a4211a9db7f (diff) | |
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0'
with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
Diffstat (limited to 'src/mongo/util/procparser_test.cpp')
| -rw-r--r-- | src/mongo/util/procparser_test.cpp | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/src/mongo/util/procparser_test.cpp b/src/mongo/util/procparser_test.cpp index 259243264ef..04edee43380 100644 --- a/src/mongo/util/procparser_test.cpp +++ b/src/mongo/util/procparser_test.cpp @@ -34,14 +34,12 @@ #include "mongo/util/procparser.h" #include <boost/filesystem.hpp> -#include <fcntl.h> #include <map> #include "mongo/bson/bsonobj.h" #include "mongo/bson/bsonobjbuilder.h" #include "mongo/logv2/log.h" #include "mongo/unittest/unittest.h" -#include "mongo/util/processinfo.h" namespace mongo { @@ -82,25 +80,6 @@ StringMap toNestedStringMap(BSONObj& obj) { return map; } -bool isPSISupported(StringData filename) { - int fd = open(filename.toString().c_str(), 0); - if (fd == -1) { - return false; - } - ScopeGuard scopedGuard([fd] { close(fd); }); - - std::array<char, 1> buf; - - while (read(fd, buf.data(), buf.size()) == -1) { - auto ec = lastPosixError(); - if (ec == posixError(EOPNOTSUPP)) { - return false; - } - ASSERT_EQ(ec, posixError(EINTR)); - } - return true; -} - #define ASSERT_KEY(_key) ASSERT_TRUE(stringMap.find(_key) != stringMap.end()); #define ASSERT_NO_KEY(_key) ASSERT_TRUE(stringMap.find(_key) == stringMap.end()); #define ASSERT_KEY_AND_VALUE(_key, _value) ASSERT_EQUALS(stringMap.at(_key), _value); @@ -134,11 +113,6 @@ bool isPSISupported(StringData filename) { ASSERT_OK(procparser::parseProcVMStat(_keys, _x, &builder)); \ auto obj = builder.obj(); \ auto stringMap = toStringMap(obj); -#define ASSERT_PARSE_PRESSURE(_x) \ - BSONObjBuilder builder; \ - ASSERT_OK(procparser::parseProcPressure(_x, &builder)); \ - auto obj = builder.obj(); \ - auto stringMap = toStringMap(obj); TEST(FTDCProcStat, TestStat) { @@ -904,112 +878,5 @@ TEST(FTDCProcVMStat, TestLocalNonExistentVMStat) { ASSERT_NOT_OK(procparser::parseProcVMStatFile("/proc/does_not_exist", keys, &builder)); } -TEST(FTDCProcPressure, TestSuccess) { - // Normal cases - { - ASSERT_PARSE_PRESSURE( - "some avg10=0.10 avg60=6.50 avg300=1.00 total=14\nfull avg10=2.30 " - "avg60=0.00 avg300=0.14 total=10"); - ASSERT(obj["some"]["totalMicros"].Double() == 14); - - ASSERT(obj["full"]["totalMicros"].Double() == 10); - } - { - ASSERT_PARSE_PRESSURE("some avg10=0.10 avg60=6.50 avg300=1.00 total=14"); - ASSERT(obj["some"]["totalMicros"].Double() == 14); - - ASSERT(!obj["full"]); - } - { - ASSERT_PARSE_PRESSURE( - "some avg10=0.10 avg60=6.50 avg300=1.00 total=14\nfull avg10=2.30 " - "avg60=0.00 avg300=0.14 total=10"); - ASSERT(obj["some"]["totalMicros"].Double() == 14); - - ASSERT(obj["full"]["totalMicros"].Double() == 10); - } -} - -TEST(FTDCProcPressure, TestFailure) { - // Failure cases - { - BSONObjBuilder builder; - ASSERT_NOT_OK(procparser::parseProcPressureFile("", "", &builder)); - } - - { - BSONObjBuilder builder; - ASSERT_NOT_OK( - procparser::parseProcPressureFile("cpu", "/proc/non-existent-file", &builder)); - } - - // 'total' is not found in the data given. - { - BSONObjBuilder builder; - ASSERT_NOT_OK( - procparser::parseProcPressure("some avg10=0.10 avg60=6.50 avg300=1.00", &builder)); - } - - // 'total' is not found in one of the rows. - { - BSONObjBuilder builder; - ASSERT_NOT_OK( - procparser::parseProcPressure("some avg10=0.10 avg60=6.50 avg300=1.00\nfull avg10=2.30 " - "avg60=0.00 avg300=0.14 total=10", - &builder)); - } - - // 'total' is not given a valid number value. - { - BSONObjBuilder builder; - ASSERT_NOT_OK(procparser::parseProcPressure( - "some avg10=0.10 avg60=6.50 avg300=1.00 total=invalid", &builder)); - } -} - -TEST(FTDCProcPressure, TestLocalPressureInfo) { - if (isPSISupported("/proc/pressure/cpu")) { - BSONObjBuilder builder; - - ASSERT_OK(procparser::parseProcPressureFile("cpu", "/proc/pressure/cpu", &builder)); - - BSONObj obj = builder.obj(); - ASSERT(obj.hasField("cpu")); - ASSERT(obj["cpu"]["some"]); - ASSERT(obj["cpu"]["some"]["totalMicros"]); - - // After linux kernel 5.13, /proc/pressure/cpu includes 'full' filled with 0. - ASSERT(!obj["cpu"]["full"] || obj["cpu"]["full"]["totalMicros"].Double() == 0); - } - - if (isPSISupported("/proc/pressure/memory")) { - BSONObjBuilder builder; - - ASSERT_OK(procparser::parseProcPressureFile("memory", "/proc/pressure/memory", &builder)); - - BSONObj obj = builder.obj(); - ASSERT(obj.hasField("memory")); - ASSERT(obj["memory"]["some"]); - ASSERT(obj["memory"]["some"]["totalMicros"]); - - ASSERT(obj["memory"]["full"]); - ASSERT(obj["memory"]["full"]["totalMicros"]); - } - - if (isPSISupported("/proc/pressure/io")) { - BSONObjBuilder builder; - - ASSERT_OK(procparser::parseProcPressureFile("io", "/proc/pressure/io", &builder)); - - BSONObj obj = builder.obj(); - ASSERT(obj.hasField("io")); - ASSERT(obj["io"]["some"]); - ASSERT(obj["io"]["some"]["totalMicros"]); - - ASSERT(obj["io"]["full"]); - ASSERT(obj["io"]["full"]["totalMicros"]); - } -} - } // namespace } // namespace mongo |
