lshal: add test for large debug string.
lshal_test uses passthrough HAL, which consistently reproduce the error because the file descriptor is always closed upon return. Test: lshal_test Fixes: 200623090 Change-Id: I35c2dbd39d5f573a889ab19df1f0a2ffd88a5e4a
This commit is contained in:
parent
aa677d973e
commit
44b6387e6a
1 changed files with 20 additions and 2 deletions
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue