blob: d5296dc0e2632d035a61a6ed82b6cecf0b2f1acd [file] [log] [blame]
#
# This file defines the tests for multiple initialization of NSS in
# different libraries.
#
# Test description lines control the parameters for the multinit test program.
#
# Init order: Upper case/digits indicate an init call, lower case indicate
# a shutdown call.
# M,m-Main 1,i-lib1, 2,z-lib2
# Main calls the traditional NSS init calls (simulating the main application)
# lib1 and lib2 call NSS_InitContext().
#
# All functions call NSS_ShutdownContext unless 'main shutdown type' is set to
# 'old', in which case main will call the traditional NSS_Shutdown().
#
# Commands: comma separated list of commands to execute. These simulate
# executing commands from either a library or main. In each cycle, multinit
# will do one initialize or shutdown, then execute all the commands
# for any of the libraries or main that is currently initialized. The same
# command is executed in each cycle that it's library is initialized.
#
# Commands are given in order or 'main','lib1','lib2'. Valid commands are:
# none - don't execute any commands for this library (or main).
# list_certs - list all the visible certs in the system.
# list_slots - list all the slots in the system.
# key_slot - list the current default key slot.
#
# Main Shutdown Type - which kind of shutdown does main call. See Init order.
#
# Directories - which directory should each init open. Listed in order of:
# (main init directory),(lib1 init directory),(lib2 init directory).
#
# RO - Which databases to open up read only, valid values are:
# all - main, lib1, and lib2
# none - open all directories R/W
# libs - lib1 & lib2
# main, lib1, lib2 - their respective directories only.
#
# Test description lines are followed by their expected summary output.
# output lines are of the form:
#
# tag expected output.
#
# where tag is one of
# all - applies to all database types
# sql - expected output for sql databases
# dbm - expected output for dbm databases
#
# if you do not specify all, you must have one line each for sql and dbm
#
# main
# init main,lib1,lib2 shutdown main,lib1,lib2 Test Case name
# order commands type directories RO
# ------ ------------------------ --- ----------- ----- --------------
1M2zmi list_slots,list_certs,none new dir1,dir2,dir3 all Progressive init
all 1C<Bob>uuuC<Dave>pppC<Eve>pppC<NSS Test CA>CTCCMS<NSS Generic Crypto Services>ttS<Main>ttS<Lib1>ttC<Alice>uuuC<Bob>pupupuC<Dave>pppC<Eve>pppC<NSS Test CA>CTCC2S<NSS Generic Crypto Services>ttS<Lib2>ttS<Main>ttS<Lib1>ttC<Alice>uuuC<Bob>pupupuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCZS<NSS Generic Crypto Services>ttS<Lib2>ttS<Main>ttS<Lib1>ttC<Alice>uuuC<Bob>pupupuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCNC<Alice>uuuC<Bob>pupupuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCI
1M2zmi list_certs,none,none old dir1,dir2,dir3 all Progressive init - oldStyle
all 1MC<Alice>uuuC<Bob>pupupuC<Dave>pppC<Eve>pppC<NSS Test CA>CTCC2C<Alice>uuuC<Bob>pupupuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCZC<Alice>uuuC<Bob>pupupuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCNIE0xffffe09a
12Mizm none,list_certs,none new dir1,dir2,dir3 all Sequenced init
all 1C<Bob>uuuC<Dave>pppC<Eve>pppC<NSS Test CA>CTCC2C<Bob>uuuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCMC<Alice>uuuC<Bob>pupupuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCIZN
12Mizm none,list_certs,none old dir1,dir2,dir3 all Sequenced init - old Style
all 1C<Bob>uuuC<Dave>pppC<Eve>pppC<NSS Test CA>CTCC2C<Bob>uuuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCMC<Alice>uuuC<Bob>pupupuC<Dave>pupupuC<Eve>pppC<NSS Test CA>CTCCIZN
1Mi2mz none,list_certs,list_slots new dir1,dir2,dir3 all Overlap shutdown
all 1C<Bob>uuuC<Dave>pppC<Eve>pppC<NSS Test CA>CTCCMC<Alice>uuuC<Bob>pupupuC<Dave>pppC<Eve>pppC<NSS Test CA>CTCCI2S<NSS Generic Crypto Services>ttS<Lib2>ttS<Main>ttS<Lib1>ttNS<NSS Generic Crypto Services>ttS<Lib2>ttS<Main>ttS<Lib1>ttZ
1Mi2mz none,key_slot,none new dir1,dir2,dir3 all Keyslot test
all 1S<Lib1>ttMS<Main>ttI2NZ
M12miz none,key_slot,none new dir1,dir2,dir3 all Main init first
all M1S<Main>tt2S<Main>ttNS<Main>ttIZ
M12miz key_slot,none,none old dir1,dir2,dir3 all Main init first - old Style
all MS<Main>tt1S<Main>tt2S<Main>ttNIE0xffffe09aZE0xffffe09a
M12miz list_slots,none,none new dir1,dir1,dir2 all Loading the same directory twice
all MS<NSS Generic Crypto Services>ttS<Main>tt1S<NSS Generic Crypto Services>ttS<Main>tt2S<NSS Generic Crypto Services>ttS<Lib2>ttS<Main>ttNIZ
M12miz list_slots,none,none new dir1,dir1,dir2 libs Loading the same directory twice - r/w then ro
all MS<NSS Generic Crypto Services>ttS<Main>tf1S<NSS Generic Crypto Services>ttS<Main>tf2S<NSS Generic Crypto Services>ttS<Lib2>ttS<Main>tfNIZ
M12miz list_slots,none,none new dir1,dir1,dir2 main Loading the same directory twice - ro then r/w
sql MS<NSS Generic Crypto Services>ttS<Main>tt1S<NSS Generic Crypto Services>ttS<Lib1>tfS<Main>tt2S<NSS Generic Crypto Services>ttS<Lib2>tfS<Lib1>tfS<Main>ttNIZ
dbm MS<NSS Generic Crypto Services>ttS<Main>tt1S<NSS Generic Crypto Services>ttS<Main>tt2S<NSS Generic Crypto Services>ttS<Lib2>tfS<Main>ttNIZ
M12miM1zim key_slot,none,none old dir1,dir2,dir3 all Properly detect shutdown of a closed handle
all MS<Main>tt1S<Main>tt2S<Main>ttNIE0xffffe09aMS<Main>tt1S<Main>ttZE0xffffe09aS<Main>ttIS<Main>ttN