diff options
-rw-r--r-- | cmds/lshal/test.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/cmds/lshal/test.cpp b/cmds/lshal/test.cpp index 6f08f74690..cba7c4bf2a 100644 --- a/cmds/lshal/test.cpp +++ b/cmds/lshal/test.cpp @@ -22,9 +22,10 @@ #include <thread> #include <vector> -#include <gtest/gtest.h> -#include <gmock/gmock.h> +#include <android-base/parseint.h> #include <android/hardware/tests/inheritance/1.0/IChild.h> +#include <gmock/gmock.h> +#include <gtest/gtest.h> #include <hidl/HidlTransportSupport.h> #include <vintf/parse_xml.h> @@ -77,6 +78,13 @@ struct Child : android::hardware::tests::inheritance::V1_0::IChild { content += "\n"; content += option.c_str(); } + if (options.size() > 0) { + uint64_t len; + if (android::base::ParseUint(options[0], &len)) { + content += "\n"; + content += std::string(len, 'X'); + } + } ssize_t written = write(fd, content.c_str(), content.size()); if (written != (ssize_t)content.size()) { LOG(WARNING) << "SERVER(Child) debug writes " << written << " bytes < " @@ -189,6 +197,16 @@ TEST_F(DebugTest, Debug3) { EXPECT_THAT(err.str(), HasSubstr("does not exist")); } +TEST_F(DebugTest, DebugLarge) { + EXPECT_EQ(0u, callMain(lshal, { + "lshal", "debug", "android.hardware.tests.inheritance@1.0::IChild/default", "10000" + })); + EXPECT_THAT(out.str(), + StrEq("android.hardware.tests.inheritance@1.0::IChild\n10000\n" + + std::string(10000, 'X'))); + EXPECT_THAT(err.str(), IsEmpty()); +} + TEST_F(DebugTest, DebugParent) { EXPECT_EQ(0u, callMain(lshal, { "lshal", "debug", "android.hardware.tests.inheritance@1.0::IParent", "calling parent" |