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
 | 
						|
 |