Example #1
0
c.timeout = 2

# ensure that shell prints expected prompt
assert c.expect(def_module.prompt) == 0, "Shell did not print expected prompt"

# run a command
c.sendline("sleep 30 &")

# pull the jobid and pid from the background process printout
(jobid, pid) = shellio.parse_regular_expression(c, def_module.bgjob_regex)

# ensure that the shell prints the expected prompt
assert c.expect(def_module.prompt) == 0, "Shell did not print expected prompt"

#The job needs to be running when we call stop
proc_check.count_children_timeout(c, 1, 1)

# send the stop command to the process
c.sendline(def_module.builtin_commands['stop'] % jobid)

#Ensure that sleep has enough time to stop before we read its
#/proc/ pid /stat file.
time.sleep(.5)

#Ensure that sleep is now stopped in the background, and is not
#the foreground process.
assert not proc_check.check_pid_fgpgrp(pid), \
                            'Error: process is in the foreground'
assert proc_check.check_pid_status(pid, 'T'), 'Error: process not stopped'

#check the prompt prints
Example #2
0
# run program sleep
c.sendline("sleep 30 &")

# Used to get the jobid and pid of the sleep process
(jobid, pid) = shellio.parse_regular_expression(c, def_module.bgjob_regex)

# ensure that shell prints expected prompt
assert c.expect(def_module.prompt) == 0, "Shell did not print expected prompt"


# send the stop command to the process
c.sendline(def_module.builtin_commands["stop"] % jobid)

# Ensure that sleep has enough time to stop before we read its
# /proc/ /stat file.
proc_check.count_children_timeout(c, 1, 1)


# Ensure that sleep is now stopped in the background, and is not
# the foreground process.
assert not proc_check.check_pid_fgpgrp(pid), "Error: process is in the foreground"
assert proc_check.check_pid_status(pid, "T"), "Error: process not stopped"

# check the prompt prints
assert c.expect(def_module.prompt) == 0, "Shell did not print expected prompt"


# resume the sleep program
c.sendline(def_module.builtin_commands["bg"] % jobid)

# check the prompt prints
Example #3
0
if hasattr(def_module, 'logfile'):
    logfile = def_module.logfile

# spawn an instance of the shell
c = pexpect.spawn(def_module.shell, drainpty=True, logfile=logfile)
atexit.register(force_shell_termination, shell_process=c)

# set timeout for all following 'expect*' calls to 2 seconds
c.timeout = 2

# ensure that the shell prints the expected prompt
assert c.expect(def_module.prompt) == 0, "Shell did not print expected prompt"

# run a non-existent command
c.sendline("this_command_does_not_exist")

# this should fail somehow and not leave any children behind
proc_check.count_children_timeout(c, 0, 2)

# eventually, the shell should go back to the prompt
assert c.expect(def_module.prompt) == 0, "Shell did not print expected prompt"

# end the shell program by sending it an end-of-file character
c.sendline("exit")

# ensure that no extra characters are output after exiting
assert c.expect_exact("exit\r\n") == 0, "Shell output extraneous characters"

# the test was successful
shellio.success()