[gparted] Add PipeCapture line discipline tests
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Add PipeCapture line discipline tests
- Date: Sat, 3 Jun 2017 15:43:32 +0000 (UTC)
commit f8783d69bc848866265910bf1a2de814a4cba821
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date: Fri May 26 09:34:08 2017 +0100
Add PipeCapture line discipline tests
Test that backspace and carriage return are processed correctly and
Ctrl-A and Ctrl-B are skipped by PipeCapture.
tests/test_PipeCapture.cc | 56 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
---
diff --git a/tests/test_PipeCapture.cc b/tests/test_PipeCapture.cc
index 608d171..3a8882f 100644
--- a/tests/test_PipeCapture.cc
+++ b/tests/test_PipeCapture.cc
@@ -354,6 +354,62 @@ TEST_F( PipeCaptureTest, ReadNULByteInMiddleOfMultiByteUTF8Character )
EXPECT_TRUE( eof_signalled );
}
+TEST_F( PipeCaptureTest, LineDisciplineCarriageReturn )
+{
+ // Test PipeCapture line discipline processes carriage return character.
+ inputstr = "1111\n2222\r33";
+ PipeCapture pc( pipefds[ReaderFD], capturedstr );
+ pc.connect_signal();
+ run_writer_thread();
+ expectedstr = "1111\n3322";
+ EXPECT_BINARYSTRINGEQ( expectedstr, capturedstr.raw() );
+}
+
+TEST_F( PipeCaptureTest, LineDisciplineCarriageReturn2 )
+{
+ // Test PipeCapture line discipline processes multiple carriage return characters.
+ inputstr = "1111\n2222\r33\r\r4";
+ PipeCapture pc( pipefds[ReaderFD], capturedstr );
+ pc.connect_signal();
+ run_writer_thread();
+ expectedstr = "1111\n4322";
+ EXPECT_BINARYSTRINGEQ( expectedstr, capturedstr.raw() );
+}
+
+TEST_F( PipeCaptureTest, LineDisciplineBackspace )
+{
+ // Test PipeCapture line discipline processes backspace character.
+ inputstr = "1111\n2222\b33";
+ PipeCapture pc( pipefds[ReaderFD], capturedstr );
+ pc.connect_signal();
+ run_writer_thread();
+ expectedstr = "1111\n22233";
+ EXPECT_BINARYSTRINGEQ( expectedstr, capturedstr.raw() );
+}
+
+TEST_F( PipeCaptureTest, LineDisciplineBackspace2 )
+{
+ // Test PipeCapture line discipline processes too many backspace characters moving
+ // the cursor back only to the beginning of the current line.
+ inputstr = "1111\n2222\b\b\b\b\b\b33\b4";
+ PipeCapture pc( pipefds[ReaderFD], capturedstr );
+ pc.connect_signal();
+ run_writer_thread();
+ expectedstr = "1111\n3422";
+ EXPECT_BINARYSTRINGEQ( expectedstr, capturedstr.raw() );
+}
+
+TEST_F( PipeCaptureTest, LineDisciplineSkipCtrlAB )
+{
+ // Test PipeCapture line discipline skips Ctrl-A and Ctrl-B.
+ inputstr = "ij\x01kl\x02mn";
+ PipeCapture pc( pipefds[ReaderFD], capturedstr );
+ pc.connect_signal();
+ run_writer_thread();
+ expectedstr = "ijklmn";
+ EXPECT_BINARYSTRINGEQ( expectedstr, capturedstr.raw() );
+}
+
} // namespace GParted
// Custom Google Test main() which also initialises the Glib threading system for
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]