xref: /freebsd/crypto/krb5/src/appl/simple/t_simple.py (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1from k5test import *
2
3sim_client = os.path.join(buildtop, 'appl', 'simple', 'client', 'sim_client')
4sim_server = os.path.join(buildtop, 'appl', 'simple', 'server', 'sim_server')
5
6for realm in multipass_realms(create_host=False):
7    server_princ = 'sample/%s@%s' % (hostname, realm.realm)
8    realm.addprinc(server_princ)
9    realm.extract_keytab(server_princ, realm.keytab)
10
11    portstr = str(realm.server_port())
12    server = realm.start_server([sim_server, '-p', portstr], 'starting...')
13
14    out = realm.run([sim_client, '-p', portstr, hostname])
15    if ('Sent checksummed message:' not in out or
16        'Sent encrypted message:' not in out):
17        fail('Expected client messages not seen')
18
19    # sim_server exits after one client execution, so we can read
20    # until it closes stdout.
21    seen1 = seen2 = seen3 = False
22    for line in server.stdout:
23        if line == 'Got authentication info from user@KRBTEST.COM\n':
24            seen1 = True
25        if line == "Safe message is: 'hi there!'\n":
26            seen2 = True
27        if line == "Decrypted message is: 'hi there!'\n":
28            seen3 = True
29    if not (seen1 and seen2 and seen3):
30        fail('Expected server messages not seen')
31
32    await_daemon_exit(server)
33
34success('sim_client/sim_server tests')
35