aboutsummaryrefslogtreecommitdiff
path: root/doc/kadm5/adb-unit-test.tex
blob: d401342dfe108a9749e5e808d8291da0ab60d66b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
\documentstyle[times,fullpage,rcsid]{article}

\rcs$Id$

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Make _ actually generate an _, and allow line-breaking after it.
\let\underscore=\_
\catcode`_=13
\def_{\underscore\penalty75\relax}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcommand{\test}[1]{\begin{description}
\setlength{\itemsep}{0pt}
#1
\end{description}

}

\newcommand{\numtest}[2]{\begin{description}
\setlength{\itemsep}{0pt}
\Number{#1}
#2
\end{description}

}

\newcommand{\Number}[1]{\item[Number:] #1}
\newcommand{\Reason}[1]{\item[Reason:] #1}
%\newcommand{\Call}[1]{\item[Call:] #1}
\newcommand{\Expected}[1]{\item[Expected:] #1}
\newcommand{\Conditions}[1]{\item[Conditions:] #1}
\newcommand{\Priority}[1]{\item[Priority:] #1}
\newcommand{\Status}[1]{\item[Status:] #1}
%\newcommand{\Number}[1]{}
%\newcommand{\Reason}[1]{}
\newcommand{\Call}[1]{}
%\newcommand{\Expected}[1]{}
%\newcommand{\Conditions}[1]{}
%\newcommand{\Priority}[1]{}

\title{OpenV*Secure Admin Database API\\
Unit Test Description\footnote{\rcsId}}
\author{Jonathan I. Kamens}

\begin{document}

\maketitle

%\tableofcontents

\section{Introduction}

The following is a description of a black-box unit test of the
OpenV*Secure Admin Database API (osa_adb).  Each API function is
listed, followed by the tests that shoud be performed on it.

The tests described here are based on the ``OV*Secure Admin Server
Implementation Design'' revision 1.14.

\section{osa_adb_get_lock and osa_adb_release_lock}

\numtest{1}{
\Reason{A shared lock can be acquired.}
\Status{Implemented}
}

\numtest{2}{
\Reason{An exclusive lock can be acquired and released.}
\Status{Implemented}
}

\numtest{3}{
\Reason{A permanent lock can be acquired and released.}
\Status{Implemented}
}

\numtest{4}{
\Reason{Attempting to release a lock when none is held fails with
NOTLOCKED.}
\Status{Implemented}
}

\numtest{5}{
\Reason{Two processes can both acquire a shared lock.}
\Status{Implemented}
}

\numtest{6}{
\Reason{An attempt to acquire a shared lock while another process holds an
exclusive lock fails with CANTLOCK_DB.}
\Status{Implemented}
}

\numtest{7}{
\Reason{An attempt to acquire an exclusive lock while another process holds a
shared lock fails with CANTLOCK_DB.}
\Status{Implemented}
}

\numtest{8}{
\Reason{An attempt to open the database while a process holds a
permanent lock fails with NO_LOCKFILE.}
\Status{Implemented}
}

\numtest{9}{
\Reason{An attempt to acquire an exclusive lock while a process holds a
permanent lock fails with NO_LOCKFILE.}
\Status{Implemented}
}

\numtest{10}{
\Reason{Acquiring a permanent lock deletes the lockfile.}
\Status{Implemented}
}

\numtest{11}{
\Reason{Releasing a permanent lock re-creates the lockfile.}
\Status{Implemented}
}

\numtest{12}{
\Reason{A process can perform a get operation while another process holds a
shared lock.}
\Status{Implemented}
}

\numtest{13}{
\Reason{A process that is running and has opened the adb principal database
can retrieve a principal created after the open occurred.}
\Status{Implemented, but not working}
}

\end{document}