TP updated according to new guidelines and last CZ meeting
authorJan Pospíšil <honik@ntc.zcu.cz>
Wed, 13 Aug 2008 15:35:27 +0000 (15:35 +0000)
committerJan Pospíšil <honik@ntc.zcu.cz>
Wed, 13 Aug 2008 15:35:27 +0000 (15:35 +0000)
org.glite.lb.doc/Makefile
org.glite.lb.doc/src/LBTP-Abstract.tex
org.glite.lb.doc/src/LBTP-IntegrationTests.tex [new file with mode: 0644]
org.glite.lb.doc/src/LBTP-InterTests.tex
org.glite.lb.doc/src/LBTP-Introduction.tex
org.glite.lb.doc/src/LBTP-PerfTests.tex
org.glite.lb.doc/src/LBTP-Tests.tex
org.glite.lb.doc/src/LBTP.tex
org.glite.lb.doc/src/definitions.tex

index dcb6907..6a37604 100644 (file)
@@ -36,7 +36,7 @@ doc: LBUG.pdf LBAG.pdf LBDG.pdf LBTP.pdf
 #      $(BIBTEX) `basename $< .tex`
 #      $(LATEX) $<
 #      $(LATEX) $<
-# 
+#
 # %.ps: %.dvi
 #      $(DVIPS) -ta4 -o $@ $<
 
@@ -92,7 +92,7 @@ LBUG.pdf: ${COMMON} \
        LBUG-Introduction.tex components.tex \
        LBUG-Tools.tex logevent.tex notify.tex log_usertag.tex change_acl.tex \
        LBUG-Troubleshooting.tex \
-       LBUG-Appendix.tex events.tex status.tex 
+       LBUG-Appendix.tex events.tex status.tex
 
 LBAG.pdf: ${COMMON} \
        LBAG.tex \
@@ -115,6 +115,7 @@ LBTP.pdf: ${COMMON} \
        LBTP.tex \
        LBTP-Abstract.tex \
        LBTP-Introduction.tex \
+    LBTP-IntegrationTests.tex \
        LBTP-Tests.tex \
        LBTP-PerfTests.tex \
        LBTP-InterTests.tex
index c49d6e6..f6736c1 100644 (file)
@@ -1,4 +1,6 @@
+% when changed, update also http://egee.cesnet.cz/en/LB/lb.html (in CVS)
 This test plan document explains how to test the Logging and Bookkeeping (\LB)
-service. Tests are described at six different layers, from elementary tests if
-the service is up and running, through tests of the fully supported
-functionality, performance and stress tests to interoperability tests.
+service. Two major categories of tests are described: integration tests 
+(include installation, configuration and basic service ping tests) and
+system tests (basic functionality tests, performance and stress tests,
+interoperability tests and security tests).
\ No newline at end of file
diff --git a/org.glite.lb.doc/src/LBTP-IntegrationTests.tex b/org.glite.lb.doc/src/LBTP-IntegrationTests.tex
new file mode 100644 (file)
index 0000000..2d18ea2
--- /dev/null
@@ -0,0 +1,73 @@
+% Integration tests
+
+\section{Installation tests}
+\label{s:installation}
+\TODO{salvet: list installed packages, check all dependencies, ...}
+
+
+\newpage
+\section{Configuration tests}
+\label{s:configuration}
+\TODO{salvet: check all config files, ...}
+
+
+\newpage
+\section{Service ping tests}
+\label{s:ping}
+
+In this section we describe basic tests of \LB if the services are up and running.
+% Local tests are meant to be run on the install node (where the appropriate daemon is running)
+% whereas remote tests are meant to be run via another node.
+
+\subsection{Logger (local \& inter)}
+
+\subsubsection{Local tests}
+\what\ check if both \texttt{glite-lb-logd} and \texttt{glite-lb-interlogd} are running,
+check if \texttt{glite-lb-logd} is listnening on which port (9002 by default),
+socket-connect to \texttt{glite-lb-logd},
+check if enough disk capacity is free for \code{dglog*} files,
+socket-connect to \texttt{glite-lb-interlogd}.
+
+\how\ \ctblb{lb-test-logger-local.sh}
+
+
+\subsubsection{Remote tests}
+\req\ environment variable \texttt{GLITE\_WMS\_LOG\_DESTINATION} set, GSI credentials set
+
+\what\ network ping,
+check GSI credentials,
+socket-connect,
+gsi-connect
+
+\how\ \ctblb{lb-test-logger-remote.sh}
+
+
+\subsection{Server}
+
+\subsubsection{Local tests}
+\req\ environment variables \texttt{GLITE\_WMS\_LBPROXY\_STORE\_SOCK},
+and \texttt{GLITE\_WMS\_LBPROXY\_SERVE\_SOCK} set
+
+\what\ check MySQL (running, accessible, enough disk capacity, ...),
+check if both daemons \texttt{glite-lb-bkserverd} and \texttt{glite-lb-notif-interlogd} are running,
+check if \texttt{glite-lb-bkserverd} is listnening on which ports (9000, 9001 and 9003 by default),
+socket-connect to all \texttt{glite-lb-bkserverd} ports and sockets,
+check if enough disk capacity is free for dumps,
+socket-connect to \texttt{glite-lb-notif-interlogd}.
+
+\how\ \ctblb{lb-test-server-local.sh}
+
+
+\subsubsection{Remote tests}
+\req\ environment variable \texttt{GLITE\_WMS\_QUERY\_SERVER} set, GSI credentials set
+
+\what\ network ping,
+check GSI credentials,
+socket-connect to all server ports,
+gsi-connect to all server ports,
+WS getVersion.
+
+\how\ \ctblb{lb-test-server-remote.sh}
+
+
+
index 2f22558..b93060f 100644 (file)
@@ -1,5 +1,9 @@
-\section{Interoperability Tests}
+\section{Interoperability tests}
+\label{s:interoperability}
+\TODO{salvet, ljocha: Test of interoperability with other grids}
 
-In this section we describe tests from layers 6 (interoperability tests). 
 
-\TODO{Test for interoperability with other grids}
+\newpage
+\section{Security tests}
+\label{s:security}
+\TODO{kouril: complete security audit}
\ No newline at end of file
index b18511f..d57c4c7 100644 (file)
@@ -1,10 +1,10 @@
 \section{Introduction}
 
-This document explains how to test the Logging and Bookkeeping (\LB) service. 
+This document explains how to test the Logging and Bookkeeping (\LB) service.
 
 As part of the EGEE-III project, Specific Service Activity SA3: Integration,
-testing and certification\footnote{\url{https://twiki.cern.ch/twiki/bin/view/EGEE/SA3}}, 
-testing is an essential activity and all important information about gLite software 
+testing and certification\footnote{\url{https://twiki.cern.ch/twiki/bin/view/EGEE/SA3}},
+testing is an essential activity and all important information about gLite software
 testing should be available from the webpage
 
 \begin{center}
@@ -14,7 +14,7 @@ testing should be available from the webpage
 This document describes test plan for the \LB service.
 
 
-\subsection{Test Categories}
+\subsection{Test categories}
 
 % Obsolete, not used anymore:
 %
@@ -32,24 +32,24 @@ According to the gLite Test Writnig Guidelines
 \footnote{\url{https://twiki.cern.ch/twiki/bin/view/LCG/LCGgliteTestWritingGuidelines}},
 we consider two test categories with the following test types:
 
-\begin{description} 
-\item[Integration tests] verify if the software is installable and configurable
+\begin{description}
+\item[Integration tests] verify if the software is installable and configurable.
 They also check for basic, not depending on other grid services, functionality
 of the component (e.g. daemon is up and running).
-\begin{enumerate}
-\item installation tests,
-\item configuration tests,
-\item service ping tests: basic tests if service is up and running.
-\end{enumerate}
+\begin{itemize}
+\item Installation tests, see Section~\ref{s:installation}
+\item Configuration tests, see Section~\ref{s:configuration}
+\item Service ping tests: basic tests if service is up and running, see Section~\ref{s:ping}
+\end{itemize}
 %
 \item[System tests] verify if the component works within the grid in
 interaction with other grid services.
-\begin{enumerate}
-\item functionality tests of fully supported functionality (including APIs and CLI),   
-\item stress tests and performance tests,
-\item interoperability tests,
-\item security tests.
-\end{enumerate}
+\begin{itemize}
+\item Functionality tests of fully supported functionality (including APIs and CLI), see Section~\ref{s:functionality}
+\item Performance and stress tests, see Section~\ref{s:perftests}
+\item Interoperability tests, see Section~\ref{s:interoperability}
+\item Security tests, see Section~\ref{s:security}
+\end{itemize}
 \end{description}
 
 The tests could be run either locally (on the install node = where the service
@@ -61,16 +61,15 @@ for example during the build process (especially unit tests). They are not
 described in this document.
 
 
-\subsection{Tests in \texttt{org.glite.testsuites.ctb/LB}}
-\TODO{implementation} 
+\subsection{Certification tests}
 
 EGEE Certification team collects tests for \LB in a gLite module
 \verb'org.glite.testsuites.ctb' in the \verb'LB' directory. All \LB tests are
 described at
 \url{https://twiki.cern.ch/twiki/bin/view/LCG/SAMTests#Logging_and_Bookkeeping_LB}
-as well as next to each test case in Sections \ref{s:tests} and \ref{s:perftests}.
+as well as next to each test case in the following sections.
 
-The tests can be used as sensors in different monitoring frameworks 
+The tests can be used as sensors in different monitoring frameworks
 (see also below).
 
 
@@ -85,18 +84,18 @@ Service Availability Monitoring
 the monitoring of production and pre-production grid sites. It provides a set
 of probes which are submitted at regular intervals, and a database that stores
 test results. In effect, SAM provides monitoring of grid services from a user
-perspective. 
+perspective.
 
-\TODO{More about SAM. How LB is integrated - LB sensors for SAM}
+\TODO{ljocha: More about SAM. How LB is integrated - LB sensors for SAM}
 
 
-\subsubsection{Nagios} 
+\subsubsection{Nagios}
 
 Nagios\footnote{\url{http://www.nagios.org}} is a host and service monitor
 designed to inform you of network problems before your clients, end-users or
 managers do.
 
-\TODO{More about Nagios. How LB is integrated - LB sensors for Nagios?}
+\TODO{ruda: More about Nagios. How LB is integrated - LB sensors for Nagios}
 
 
 \subsubsection{ETICS}
@@ -109,7 +108,7 @@ edge Grid software and best practices, ETICS allows to fully automate
 the way your software is built and tested.
 
 Please see the ETICS User Manual \cite{etics_manual} for the description
-of the ETICS service and basic ETICS commands. The command to be issued to 
+of the ETICS service and basic ETICS commands. The command to be issued to
 test the whole \LB subsystem is:
 
 \begin{verbatim}
@@ -117,17 +116,17 @@ test the whole \LB subsystem is:
 \end{verbatim}
 
 It can be issued locally or using the remote build and test system.
-\TODO{More about ETICS testing}
+%\TODO{More about ETICS testing?}
 
 General ideas of \LB tests using ETICS are the following
 
 \begin{itemize}
 \item tests are in CVS together with the code
 
-\item tests run the service themselves on some nondefault ports and perform a set of 
-elementary actions similar to those from org.glite.testsuites.ctb/LB
-to test the basic functionality of the service which is stopped again at the 
+\item tests run the service themselves on some nondefault ports and perform a set of
+elementary actions similar to those from \ctblb{}\ 
+to test the basic functionality of the service which is stopped again at the
 end of the test
 
-\end{itemize} 
-\TODO{More about LB tests for individual modules?}
+\end{itemize}
+\TODO{More about LB tests for individual modules}
index 1b158da..9037d24 100644 (file)
@@ -1,9 +1,15 @@
-\section{Performance and Stress Tests}
+\section{Performance and stress tests}
 \label{s:perftests}
-\TODO{review, reformat, update also \url{https://meta.cesnet.cz/mediawiki/index.php/LB_and_JP_Performance_Testing}, ...}
 
-In this section we describe tests from layers 4 (stress tests) and 5 (performance tests). 
-General idea of performance and stress tests of LB components is the following:
+\TODO{michal: nejak sesynchronizovat s webem}
+In this section we describe only the general idea of performance and stress tests of \LB components.
+This work is in progress and all necessary information is updated at the wiki page:
+
+\begin{center}
+\url{http://egee.cesnet.cz/mediawiki/index.php/LB_and_JP_Performance_Testing}
+\end{center}
+
+The general idea is thus the following:
 
 \begin{itemize}
 
@@ -55,20 +61,27 @@ queries, for example).
     \item After completion test scripts print the table described for the
       respective tests filled in with measured values (ie. the table
       is not filled in manually by human tester).
-    \item Measure event throughput bu
+
+    \item Measure event throughput by
     \[ \mbox{event\_throughput} = \frac{1}{\mbox{time\_delivered} - \mbox{time\_arrived}} \]
 \TODO{measure job throughput for event patterns of typical jobs or deduce
 job throughput from throughput of selected types of events?}
 
     \item Publish the results on the web.
-\TODO{ETICS test? \url{https://meta.cesnet.cz/mediawiki/index.php/LB_and_JP_Performance_Testing}? etc.}
+    
+    \item \TODO{ETICS test framework is used to run performance and stress tests automatically.}
     \end{itemize}
+
 % vztahuje se k cemu?
 % * only if next event is sent after previous was delivered
 %
 \end{itemize}
 
+
+
+\endinput
+
+
 In the following subsections we describe performance and stress tests for
 individual LB compoments.  They include both tests of the isolated components
 on one node (may require binaries from other components to produce/consume
@@ -80,10 +93,10 @@ events) as well as tests of LB components among more nodes.
 %--------------------
 
 \begin{verbatim}
-* component:  
+* component:
      org.glite.lb.client
 
-* binaries required: 
+* binaries required:
      logevent_libtest
 
 * test shell script:
@@ -95,7 +108,7 @@ events) as well as tests of LB components among more nodes.
 * test description:
      - measures time required to format given events into ULM. Events
        are read from file, parsed into components, timestamped and
-       produced. 
+       produced.
 
      - events produced:
          - by calling logging function edg_wll_LogEvent*()
@@ -153,7 +166,7 @@ events) as well as tests of LB components among more nodes.
              d) normal operation
                    glite_lb_logd_perf
 
-         no parse - LL does not parse events 
+         no parse - LL does not parse events
          no file  - LL does not store events into files
          no ipc   - LL does not send events through socket to IL
 
@@ -164,15 +177,15 @@ events) as well as tests of LB components among more nodes.
       - events consumed:
            i) after storing into files
           ii) by "empty" IL
-        
+
 * results:
 
 
 
 i) events stored in files
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
    a)
    b)
@@ -181,8 +194,8 @@ i) events stored in files
 
 ii) events sent to IL
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
    a)
    b)
@@ -227,7 +240,7 @@ ii) events sent to IL
      - measures time the event travels through interlogger.
        Interlogger is instrumented to skip some parts of eventh
        processing for particular test, specifically tests include
-       these variants: 
+       these variants:
              a) disabled event parsing. The server address
                  (eg. jobid) is hardcoded.
              b) disabled event synchronization from files
@@ -256,8 +269,8 @@ i) events discarded
 1) events received on socket
 (options 2 and 3 are not tested)
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
    a)
    b)
@@ -265,11 +278,11 @@ i) events discarded
    e)
 
 
-ii) events sent to empty bkserver 
+ii) events sent to empty bkserver
 1) events received on socket
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
    a)
    b)
@@ -280,8 +293,8 @@ ii) events sent to empty bkserver
 
 2) events recovered from files
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
    d)
    e)
@@ -289,8 +302,8 @@ ii) events sent to empty bkserver
 
 3) events synced from files, every 10th event sent on socket
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
    a)
    b)
@@ -330,7 +343,7 @@ ii) events sent to empty bkserver
 * test description:
      - measures time required for processing event by LB proxy. Test
        is performed with (a)) and without (b)) checking for duplicit
-       events. 
+       events.
 
      - events produced:
           - stresslog sends events using the IL protokol on local
@@ -343,15 +356,15 @@ ii) events sent to empty bkserver
           iv) after job status computation
            v) normal operation
 
+
 
 
 * results:
 
 a) with duplicity check:
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
      i)
     ii)
@@ -362,8 +375,8 @@ a) with duplicity check:
 
 b) without duplicity check:
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
      i)
     ii)
@@ -400,7 +413,7 @@ b) without duplicity check:
 * test description:
      - measures time required for processing event by LB server. Test
        is performed with (a)) and without (b)) checking for duplicit
-       events. 
+       events.
 
      - events produced:
           - stresslog sends events using the IL protokol (using DoLogEventDirect())
@@ -415,8 +428,8 @@ b) without duplicity check:
 
 a) with duplicity check:
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
      i)
     ii)
@@ -426,8 +439,8 @@ a) with duplicity check:
 
 b) without duplicity check:
 
-   throughput:     small    big    small    big 
-                   job      job    DAG      DAG 
+   throughput:     small    big    small    big
+                   job      job    DAG      DAG
    -------------------------------------------------
      i)
     ii)
@@ -452,7 +465,7 @@ b) without duplicity check:
      glite_lb_proxy
      glite_lb_bkserverd_perf_empty
      glite_lb_proxy_perf_empty
-     
+
 * test shell script:
      perftest_jobreg
 
@@ -467,8 +480,8 @@ b) without duplicity check:
            a) current implementation
            b) implementation of connection pool at the client
            c) parallel communication with server and proxy
-       
-       
+
+
      - events produced:
            - stressreg sends registration events by calling
             edg_wll_RegisterJob*()
index 4bb3722..19ad597 100644 (file)
-% - local (meant to be run on the install node) LB server ping test                
-% - remote (meant to be run via another node) LB server ping test  
-% - local LB logger ping test                                            
-% - remote LB logger ping test
+% System tests
 
-\section{Test Cases}
-\label{s:tests}
-
-In this section we describe tests from layers 1 (service ping tests), 
-2 (service functionality tests) and 3 (system tests). 
-
-\TODO{completely review}
+\section{System functionality tests}
+\label{s:functionality}
+\TODO{vsichni: znovu cele projit}
 
+\subsection{Event delivery}
 
-\subsection{Tests if services are up and running}
-\TODO{how? remote vs. local tests}
 
-\begin{verbatim}
-org.glite.testsuites.ctb/LB/lb-l1.sh now does the following:
-- ping_host
-- check_binaries
-- check_service: runs testSocket (non GSI) on default ports for LL, IL and server
 
-What needs to be done:
-- how test scripts should be told to test such a service on such a (nondefualt) port?
-- test GSI credentials
-- do a GSI testSocket? hand-shake? 
-- maybe call a logevent with INTERNAL msg type? -> belongs to level 2
-- move all common parts to functions.sh and write individual test scripts for each daemon:
-\end{verbatim}
+\subsubsection{Normal event delivery}
+\label{normal}
+% event delivery
+% poslat .sh, job log vrati to, co bylo ve fajlech
 
-\subsubsection{logger (local \& inter)}
-\TODO{
-remote: ping, check binaries on monitoring machine, check GSI credentials, gsi-connect?;
-local: check if enough disk capacity is free for dglog* files 
-il: check binaries, check if enough disk capacity is free for dglog* files, socket-connect? }
+\req\ all \LB\ daemons running (\path{glite-lb-logd}, \path{glite-lb-interlogd},
+\path{glite-lb-bkserverd})
 
-\subsubsection{Server}
-\TODO{
-monitoring machine prerequisities: check binaries, check GSI credentials,
-remote: ping, tcp-connect, ssl-connect, WS getVersion, 
-local: check MySQL (running, accessible, enough disk capacity, ...), socket-connect?, check if enough disk capacity is free for dumps?, ...
-+Notification inter-logger: jako u il}
+\what\ 
+\begin{enumerate}
+\item Register jobs with \code{edg\_wll\_RegsterJob} 
+\item Log reasonable sequences of events with \code{edg\_wll\_Log*}, both through logger and/or proxy
+\item Check with \code{edg\_wll\_JobLog} that the events got delivered afterwards (approx. 10s).
+\end{enumerate}
 
+\how\ \ctblb{lb-test-normal-event-delivery.sh}
+% org.glite.testsuites.ctb/LB/lb-l2.sh now does the following:
+% - array_job_reg: registeres $JOBS_ARRAY_SIZE jobs
+% - logEvents: logs events by glite-lb-$state.sh example scripts
+% - logTags: logs user tags
+% - testLB: calls glite-lb-job_log for all jobs
+% - testLB2: calls glite-lb-job_status for all jobs
+%
+% What needs to be done:
+% - rename the script, tidy it
+% - create some meaningful sequence of events for logEvents
 
-\subsection{Event delivery}
+\result\ All sub tests (API calls) should return 0. The same events that were logged must be returned.
 
-\begin{verbatim}
-org.glite.testsuites.ctb/LB/lb-l2.sh now does the following:
-- array_job_reg: registeres $JOBS_ARRAY_SIZE jobs
-- logEvents: logs events by glite-lb-$state.sh example scripts
-- logTags: logs user tags
-- testLB: calls glite-lb-job_log for all jobs
-- testLB2: calls glite-lb-job_status for all jobs
+\begin{hints}
+\path{glite-lb-*.sh} scripts produce reasonable seqences of events, including
+the job initial registration.
 
-What needs to be done:
-- tidy
-- create some meaningful sequence of events for logEvents
-\end{verbatim}
+There is approx. 1 min time window in which the locallogger files exist.
+They can be grabbed and used for comparing the events later in~\ref{recover}.
+\end{hints}
 
 
 
-% locallogger
-% bez dalsich demonu, registrovat job, vrati EAGAIN, objevi se fajly
-\subsubsection{Standalone locallogger -- job registration}
-\TODO{registrace uz nejde pres LL}
+\subsubsection{Job registration only}
 \label{reg}
-\req\ running \path{glite-lb-logd} on the test node, don't start either
-\path{glite-lb-interlogd} or \path{glite-lb-bkserverd}
+\req\ running \path{glite-lb-bkserverd}
 
-\how\ call \code{edg\_wll\_RegisterJob}. Jobid's should preferably point
+\what\ call \code{edg\_wll\_RegisterJob}. Jobid's should preferably point
 to a~remote \LB\ server.
 
-\result\ The API call returns EAGAIN, but locallogger creates an event file
-in its storage.
-The file should contain single line RegJob event.
+\how\ \ctblb{lb-test-job-registration.sh}
+
+\result\ All sub tests (API calls) return 0.
 
 \begin{hints}
 \path{glite-lb-regjob} example can be used. It generates a~unique jobid,
 prints it and calls \LB\ API appropriately.
 \end{hints}
 
-% async -- prida do fajlu, OK
-% logevent
+
+
 \subsubsection{Standalone locallogger -- log event}
 \label{log}
-\req\ running \path{glite-lb-logd} only, files generated in test~\ref{reg}.
+% async -- prida do fajlu, OK
+% logevent
+
+\req\ running \path{glite-lb-logd} only, jobs registered in test~\ref{reg}.
 
-\how\ call \code{edg\_wll\_Log*} for various event types in a~sequence
+\what\ call \code{edg\_wll\_Log*} for various event types in a~sequence
 resebmling real \LB\ usage, using the same jobid's as in test~\ref{reg}
 
-\result\ API calls return 0, events are added one per line to the locallogger files
+\how\ \ctblb{lb-test-logevent.sh}
+
+\result\ All sub tests (API calls) return 0, events are added one per line to the locallogger files.
 
 \begin{hints}
-\path{glite-lb-logev} client program can be used.
+\path{glite-lb-logevent} client program can be used.
 
-\path{glite-lb-*.sh} examples may be adapted to produce reasonable seqences
-of events.
+\TODO{\path{glite-lb-*.sh} examples may be adapted to produce reasonable seqences
+of events.}
 \end{hints}
 
+
+
 \subsubsection{Interlogger recovery}
 \label{recover}
-\TODO{See also org.glite.testsuites.ctb/LB/lb-l2ILR.sh.}
 % recover interloggeru
 % il & server (remote)
 % spustit, protlaci soubory na server, soubory zmizi, lze se dotazat na stav
-\req\ running \path{glite-lb-bkserverd} on the machine and port where 
-jobid's from \ref{reg} point to; files generated in~\ref{log}.
 
-\how\ Make a~copy of the files created in~\ref{log}, then start
+\req\ running \path{glite-lb-bkserverd} on the machine and port where
+jobid's from \ref{reg} point to; files generated in~\ref{log};
+\path{glite-lb-interlogd} is stopped.
+
+\what\ Make a~copy of the files created in~\ref{log}, then start
 \path{glite-lb-interlogd}. After approx. 10s check the jobs
-with \code{edg\_wll\_JobLog} call. 
+with \code{edg\_wll\_JobLog} call.
+
+\how\ \ctblb{lb-l2ILR.sh}
 
 \result \code{edg\_wll\_JobLog} should return the same events that were
-contained in the locallogger files. The files should be removed by 
+contained in the locallogger files. The files should be removed by
 interlogger after approx. 1 min.
 
 \begin{hints}
@@ -120,47 +113,20 @@ interlogger after approx. 1 min.
 format as the locallogger files.
 \end{hints}
 
-% event delivery
-% poslat .sh, job log vrati to, co bylo ve fajlech
-\subsubsection{Normal event delivery}
-\TODO{na zacatek sekce}
-\label{normal}
-\req\ all \LB\ daemons running (\path{glite-lb-logd}, \path{glite-lb-interlogd},
-\path{glite-lb-bkserverd}
-
-\how\
-\begin{enumerate}
-
-\item Register jobs with \code{edg\_wll\_RegsterJob} 
-\item Log reasonable sequences of events with \code{edg\_wll\_Log*}.
-\item Check with \code{edg\_wll\_JobLog}
-that the events got delivered afterwards (approx. 10s).
-\end{enumerate}
-
-\result\ API calls should return 0. The same events that were logged must be returned.
-
-\begin{hints}
-\path{glite-lb-*.sh} scripts produce reasonable seqences of events, including
-the job initial registration.
-
-There is approx. 1min time window in which the locallogger files exist.
-They can be grabbed and used for comparing the events as in~\ref{recover}.
-
-\end{hints}
 
 
 
 \subsection{Job state computation}
-\TODO{See also org.glite.testsuites.ctb/LB/lb-l2.sh above.}
 
-% normal event delivery & job state machine
-% .sh, dotaz na stav
 \subsubsection{Normal job states}
-\TODO{projit vsechny stavy}
 \label{state}
+% normal event delivery & job state machine
+% .sh, dotaz na stav
+
 \req\ \path{glite-lb-bkserverd} running, events from \ref{normal} logged.
 
-\how\ Check state of the jobs with \code{edg\_wll\_JobStatus}.
+\what\ Check state of the jobs with \code{edg\_wll\_JobStatus}. Check all possible job states 
+(if necessary, log relevant events). Query both server and/or proxy.
 
 \result\ The API call should return 0, the jobs should be in the expected
 states. Thorough tests may also cross check the values supplied in the
@@ -171,25 +137,28 @@ events (e.g. destination computing element) wrt. the values reported in the job
 in the job state same as the `*' part of the script name.
 \end{hints}
 
+
+
 \subsubsection{Non-simple job states}
-\TODO{dagy, kolekce, ...}
-% specialni stav DAGu, histogram potomku
+\TODO{dags, collections, their states and states (and histogram) of their children/subjobs, ...}
+
 
 
+\subsection{LB server and proxy combined test}
+\TODO{mulac: mizeni jobu z proxy, alias kombinovany test na server-proxy}
 
-\subsection{LB proxy}
-\TODO{logovani pridat do Event delivery, ptani se na stavy pridat do Normal job states,
-zde resit mizeni jobu z proxy, Milos: kombinovany test na server-proxy}
 \req\ running \path{glite-lb-proxy}, \path{glite-lb-interlogd} and
 \path{glite-lb-bkserverd}
 
-\how\ Register jobs with \code{edg\_wll\_RegisterJobProxy}, log events
+\what\ Register jobs with \code{edg\_wll\_RegisterJobProxy}, log events
 using \code{edg\_wll\_LogEventProxy} and check the job states against
 both lbproxy (using \code{edg\_wll\_JobStatusProxy}) and bkserver
-(using \code{edg\_wll\_JobStatus}).
+(using \code{edg\_wll\_JobStatus}). Pay special attention to job reaching final 
+job status and to the automatic purge from proxy - check the timeouts.
 
 \result\ A new job state should be available immediately at the
-lbproxy and probably with a small delay also at the bkserver.
+lbproxy and probably with a small delay also at the bkserver. Jobs that reach the final job state
+are really purged from the proxy in given timeout.
 
 \begin{hints}
 There is already a script \path{test.sh} in
@@ -217,25 +186,31 @@ the same form as e.g. \path{glite-lb-jobstat}.
 \end{hints}
 
 
+
 \subsection{Change ACL}
-\TODO{dan: pozdeji - s novym auth. schematem. dopsat TODO jak}
+\TODO{kouril: pozdeji - s novym auth. schematem. dopsat TODO jak}
+
 
-\subsection{Notifications}
-\TODO{doplnit nove optiony}
 
-% notifikace 
+
+\subsection{Notifications}
+\TODO{ruda: revize, doplnit nove optiony}
+% notifikace
 % regjob, reg notifikace na vsechno, poslat udalosti, hlidat notif
+
+
+
 \subsubsection{Single job, any state change}
 \label{notif1}
 \req\ All \LB\ services running
 
-\how
+\what
 \begin{enumerate}
-\item Register a job. 
+\item Register a job.
 \item Start a~notification client (preferably on another machine),
-register with \code{edg\_wll\_NotifNew} for any state changes of the job, 
+register with \code{edg\_wll\_NotifNew} for any state changes of the job,
 and repeatedly invoke \code{edg\_wll\_NotifReceive}.
-\item One by one send events triggering job state change. 
+\item One by one send events triggering job state change.
 \end{enumerate}
 
 \result\ All the events should trigger notification reported by the running
@@ -245,6 +220,8 @@ notification client.
 \path{glite-lb-notify} example can be used with its \path{test} command.
 \end{hints}
 
+
+
 \subsubsection{Additional notification criteria}
 \label{notif-complex}
 \req\ All \LB\ services running
@@ -255,11 +232,14 @@ e.g. job is scheduled for a~specific destination.
 \result\ Only notifications matching the criteria should be delivered.
 
 % rozsireni dotazu o dalsi job
+
+
+
 \subsubsection{Include another job}
 \label{notif2}
 \req\ All \LB\ services running, notification from \ref{notif1} still active
 
-\how\ 
+\how\
 \begin{enumerate}
 \item Register another job.
 \item Augment the notification registration with the new jobid using
@@ -280,13 +260,15 @@ can be used.
 % pak poslat udalost, musi dojit
 % uz je v predchozim implicitne
 
+
+
 \subsubsection{Delayed delivery}
 % notifikace -- zpozdene doruceni
 % registrovat, odpojit, poslat udalosti, pripojit se
 
 \req\ All \LB\ services running
 
-\how\ 
+\how\
 \begin{enumerate}
 \item Register another job.
 \item Register a~notification as in~\ref{notif1} but terminate the client
@@ -301,11 +283,12 @@ immediately.
 
 
 
+
 \subsection{Server purge}
 \TODO{ljocha, valtri: ozivit skript i text}
 
 \textbf{WARNING: This test is destructive, it destroys ALL data in an
-existing \LB\ database.} 
+existing \LB\ database.}
 
 The test is fairly complex but it does not make too much sense to split it
 artificially.
index 4aed2b4..a97ec76 100644 (file)
@@ -27,6 +27,9 @@
 \input{LBTP-Introduction}
 
 \newpage
+\input{LBTP-IntegrationTests}
+
+\newpage
 \input{LBTP-Tests}
 
 \newpage
index 76b5c75..987e907 100644 (file)
 
 \def\req{\noindent\textbf{Prerequisities:}}
 \def\how{\noindent\textbf{How to run:}}
+\def\what{\noindent\textbf{What to test:}}
 \def\result{\noindent\textbf{Expected result:}}
 \def\path#1{{\normalfont\textsf{#1}}}
 \def\code#1{\texttt{#1}}
+\def\ctblb#1{\code{org.glite.testsuites.ctb/LB/#1}}
 
 \specialcomment{hints}{\par\noindent\textbf{Hints: }\begingroup\slshape}{\endgroup}
 %\includecomment{hints}