We're losing the svn history (which we could probably keep if we tried hard enough) but don't consider that worthwhile. Note these tests are destructive, so run them only in a throwaway environment like a chroot, container, or vm. The tests/run.all script should be the one which launches all the tests. Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
42 lines
712 B
Plaintext
Executable File
42 lines
712 B
Plaintext
Executable File
#!/usr/bin/expect
|
|
|
|
set timeout 5
|
|
|
|
if {$argc < 1} {
|
|
puts "usage: run.exp \[shell] \[user]"
|
|
exit 1
|
|
}
|
|
set shell [lindex $argv 0]
|
|
|
|
if {$argc == 2} {
|
|
spawn /usr/bin/chsh [lindex $argv 1]
|
|
} else {
|
|
spawn /usr/bin/chsh
|
|
}
|
|
|
|
expect "Password: "
|
|
send "myuserF00barbaz\r"
|
|
expect "Changing the login shell for myuser"
|
|
expect "Enter the new value, or press ENTER for the default"
|
|
expect -re "Login Shell .*\]: "
|
|
send "$shell\r"
|
|
expect "$shell\r\n"
|
|
expect "chsh: $shell is an invalid shell\r\n"
|
|
expect {
|
|
eof {
|
|
if ([string compare $expect_out(buffer) ""]) {
|
|
set fp [open "tmp/out" w]
|
|
puts $fp "$expect_out(buffer)"
|
|
puts "\nFAIL"
|
|
exit 1
|
|
}
|
|
} default {
|
|
puts "\nFAIL"
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
puts "\nPASS"
|
|
exit 0
|
|
|