diff --git a/src/test/foptiattr-test.cpp b/src/test/foptiattr-test.cpp index 815838be..aa4c210a 100644 --- a/src/test/foptiattr-test.cpp +++ b/src/test/foptiattr-test.cpp @@ -83,7 +83,7 @@ class FOptiAttrTest : public CPPUNIT_NS::TestFixture void wyse50Test(); private: - std::string printSequence (char*); + std::string printSequence (const std::string&); // Adds code needed to register the test suite CPPUNIT_TEST_SUITE (FOptiAttrTest); @@ -4483,57 +4483,31 @@ void FOptiAttrTest::wyse50Test() } //---------------------------------------------------------------------- -std::string FOptiAttrTest::printSequence (char* str) +std::string FOptiAttrTest::printSequence (const std::string& s) { - std::ostringstream sequence; - - if ( ! str ) - return ""; - - const std::string& s(str); + std::string sequence; + const std::string ctrl_character[] = + { + "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", + "BS", "Tab", "LF", "VT", "FF", "CR", "SO", "SI", + "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", + "CAN", "EM", "SUB", "Esc", "FS", "GS", "RS", "US", + "Space" + }; for (std::string::size_type i = 0; i < s.length(); ++i) { - switch ( int(s[i]) ) - { - case 0x03: - sequence << "ETX "; - break; + char ch = s[i]; - case 0x08: - sequence << "BS "; - break; + if ( ch < 0x21 ) + sequence += ctrl_character[uInt(ch)]; + else + sequence += ch; - case 0x09: - sequence << "Tab "; - break; - - case 0x0a: - sequence << "LF "; - break; - - case 0x0d: - sequence << "CR "; - break; - - case 0x0e: - sequence << "SO "; - break; - - case 0x0f: - sequence << "SI "; - break; - - case 0x1b: - sequence << "Esc "; - break; - - default: - sequence << s[i] << ' '; - } + sequence += ' '; } - return sequence.str(); + return sequence; } diff --git a/src/test/foptimove-test.cpp b/src/test/foptimove-test.cpp index bc421240..5c78a2a5 100644 --- a/src/test/foptimove-test.cpp +++ b/src/test/foptimove-test.cpp @@ -736,39 +736,29 @@ void FOptiMoveTest::wyse50Test() //---------------------------------------------------------------------- std::string FOptiMoveTest::printSequence (const std::string& s) { - std::ostringstream sequence; + std::string sequence; + const std::string ctrl_character[] = + { + "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", + "BS", "Tab", "LF", "VT", "FF", "CR", "SO", "SI", + "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", + "CAN", "EM", "SUB", "Esc", "FS", "GS", "RS", "US", + "Space" + }; for (std::string::size_type i = 0; i < s.length(); ++i) { - switch ( int(s[i]) ) - { - case 0x08: - sequence << "BS "; - break; + char ch = s[i]; - case 0x09: - sequence << "TAB "; - break; + if ( ch < 0x21 ) + sequence += ctrl_character[uInt(ch)]; + else + sequence += ch; - case 0x0a: - sequence << "LF "; - break; - - case 0x0d: - sequence << "CR "; - break; - - case 0x1b: - sequence << "Esc "; - break; - - default: - sequence << s[i]; - sequence << ' '; - } + sequence += ' '; } - return sequence.str(); + return sequence; } // Put the test suite in the registry diff --git a/src/test/ftermcapquirks-test.cpp b/src/test/ftermcapquirks-test.cpp index 479a86e6..d0c5213d 100644 --- a/src/test/ftermcapquirks-test.cpp +++ b/src/test/ftermcapquirks-test.cpp @@ -284,6 +284,8 @@ void FTermcapQuirksTest::generalTest() , C_STR(CSI "9m") ); CPPUNIT_ASSERT_CSTRING ( caps[fc::t_exit_crossed_out_mode].string , C_STR(CSI "29m") ); + CPPUNIT_ASSERT_CSTRING ( printSequence(caps[fc::t_enter_ca_mode].string).c_str() + , C_STR("Esc 7 Esc [ ? 4 7 h ") ); delete[] caps; } @@ -710,39 +712,29 @@ void FTermcapQuirksTest::screenTest() //---------------------------------------------------------------------- std::string FTermcapQuirksTest::printSequence (const std::string& s) { - std::ostringstream sequence; + std::string sequence; + const std::string ctrl_character[] = + { + "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", + "BS", "Tab", "LF", "VT", "FF", "CR", "SO", "SI", + "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", + "CAN", "EM", "SUB", "Esc", "FS", "GS", "RS", "US", + "Space" + }; for (std::string::size_type i = 0; i < s.length(); ++i) { - switch ( int(s[i]) ) - { - case 0x08: - sequence << "BS "; - break; + char ch = s[i]; - case 0x09: - sequence << "TAB "; - break; + if ( ch < 0x21 ) + sequence += ctrl_character[uInt(ch)]; + else + sequence += ch; - case 0x0a: - sequence << "LF "; - break; - - case 0x0d: - sequence << "CR "; - break; - - case 0x1b: - sequence << "Esc "; - break; - - default: - sequence << s[i]; - sequence << ' '; - } + sequence += ' '; } - return sequence.str(); + return sequence; } // Put the test suite in the registry diff --git a/src/test/ftermdetection-test.cpp b/src/test/ftermdetection-test.cpp index e27df0fc..9639e140 100644 --- a/src/test/ftermdetection-test.cpp +++ b/src/test/ftermdetection-test.cpp @@ -32,8 +32,6 @@ #include #include -#define CPPUNIT_ASSERT_CSTRING(expected, actual) \ - check_c_string (expected, actual, CPPUNIT_SOURCELINE()) static char* colorname[] = { @@ -296,20 +294,6 @@ static char* colorname[] = 0 }; -//---------------------------------------------------------------------- -void check_c_string ( const char* s1 - , const char* s2 - , CppUnit::SourceLine sourceLine ) -{ - if ( s1 == 0 && s2 == 0 ) // Strings are equal - return; - - if ( s1 && s2 && std::strcmp (s1, s2) == 0 ) // Strings are equal - return; - - ::CppUnit::Asserter::fail ("Strings are not equal", sourceLine); -} - //---------------------------------------------------------------------- // class FTermDetectionTest @@ -371,7 +355,6 @@ class FTermDetectionTest : public CPPUNIT_NS::TestFixture void tmuxTest(); private: - std::string printSequence (const std::string&); char* getAnswerback (console); char* getDSR (console); char* getDECID (console); @@ -804,7 +787,7 @@ void FTermDetectionTest::puttyTest() CPPUNIT_ASSERT ( detect.hasTerminalDetection() ); CPPUNIT_ASSERT ( ! detect.hasSetCursorStyleSupport() ); - //debug = true; + debug = true; debugOutput(); closeStandardStreams(); exit(EXIT_SUCCESS); @@ -1591,34 +1574,6 @@ void FTermDetectionTest::tmuxTest() // private methods of FOptiMoveTest -//---------------------------------------------------------------------- -std::string FTermDetectionTest::printSequence (const std::string& s) -{ - std::string sequence; - const std::string ctrl_character[] = - { - "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", - "BS", "Tab", "LF", "VT", "FF", "CR", "SO", "SI", - "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", - "CAN", "EM", "SUB", "Esc", "FS", "GS", "RS", "US", - "Space" - }; - - for (std::string::size_type i = 0; i < s.length(); ++i) - { - char ch = buffer[i]; - - if ( ch < 0x21 ) - sequence += ctrl_character[uInt(ch)]; - else - sequence += ch; - - sequence += ' '; - } - - return sequence; -} - //---------------------------------------------------------------------- char* FTermDetectionTest::getAnswerback (console con) {