from testutils import * setup_tests() # Test a really long pipeline # Cat acts as the identity function for pipes sendline("echo hi | cat | cat | cat | cat | cat | cat | cat") expect_exact("hi\r\n", "multiple cats didn't work") expect_prompt() sendline("echo hi | cat | cat | cat | cat | cat | cat | cat | tr h b | cat") expect_exact("bi\r\n", "multiple cats with a tr didn't work") expect_prompt("Shell did not print expected prompt (2)") # Test multiple substitutions through pipes sendline("echo hello how are you | sed s/how/who/ | sed s/are/am/ | sed s/you/I/") expect_exact("hello who am I\r\n", "Sed didn't work") expect_prompt("Shell did not print expected prompt (3)") # Reverse a string twice to get back the original sendline("echo string | rev | rev ") expect_exact("string\r\n", "Reverse twice didn't return string") expect_prompt("Shell did not print expected prompt (4)") test_success()