AMGA Test Plan For EMI2
EMI Component Description and Version
AMGA is a metadata catalogue that provides a tool to store, query and replicate metadata on the Grid.
AMGA uses a database backend to store metadata and uses ODBC in order to be database implementation independent.
AMGA uses Grid certificates or
VOMS proxies in order to give access to grid users. After a user is authenticated to an
AMGA server he/she can make queries and store metadata about anything (files, proteins, datasets etc).
This document is suitable for
AMGA 2.3.0 For the details, Please refer
here.
Unit tests
Using GCOV and LCOV
URL pointing to the results of the Unit Tests.
http://amga.web.cern.ch/amga/lcov_html_result/index.html
Code Coverage %, if available.
Overall coverage rate:
lines......: 10.1% (2545 of 25309 lines)
functions..: 13.9% (326 of 2340 functions)
branches...: 5.0% (1073 of 21414 branches)
These values are the result of first unit test about
AMGA.
We'll re-try again soon.
Deployment tests
Installation
The YUM repository needed to install the component is :
SL5 : https://twiki.cern.ch/twiki/pub/EMI/EMI-2/emi-2-rc4-sl5.repo
SL6 : https://twiki.cern.ch/twiki/pub/EMI/EMI-2/emi-2-rc4-sl6.repo
The YUM command needed to test a clean installation is :
$ sudo yum install emi.amga.amga-server
The YUM command needed to test an upgrade installation :
$ sudo yum upgrade emi.amga.amga-server
Configuration
In case of Clean Installation (postgresql backend only:need root):
$ su root
$ /etc/rc.d/init.d/mdservice init
$ /etc/rc.d/init.d/mdservice restart
In case of upgrade Installation from v 1.3 (postgresql backend only) :
$ sudo -u postgres psql -q -U arda metadata < /opt/glite/share/doc/glite-amga-server/upgradePG_13_20.sql
$ sudo -u postgres psql -q -U arda metadata < /opt/glite/share/doc/glite-amga-server/upgradePG_20_21.sql
$ sudo -u postgres psql -q -U arda metadata < /opt/glite/share/doc/glite-amga-server/upgradePG_21_23.sql
$ /etc/rc.d/init.d/mdservice restart
1) For more details, Please refer /opt/glite/etc/amgad.config file and Section 8 of the AMGA Manual.
2) Please make sure that LD_LIBRARY_PATH includes /opt/glite/lib64 and /opt/editline/lib
3) To make sure if it is configured successfully, type "mdclient" at the command line and check if it prints the follows.
$ mdclient
Connecting to localhost:8822...
ARDA Metadata Server
Query>
System tests
Basic functionality tests
1. Metadata manipulation command test : implemented
This test runs some basic functions on the
AMGA server.
Basic functions include creation/deletion of 'files' and 'directories'
inserting/deleting attributes to them and many other
AMGA commands.
* Test Suite
It is included at the
AMGA source tar ball.
link
- org.glite.amga.server/test/md-test
- org.glite.amga.server/test/md-test.cfg
For details, Please refer the attached document.
link
* Normal workflow - correct input
The test creates some directories and tries to enrich them with metadata and delete all of them in the end.
A successful completion of all commands shows that the service is running ok.
* Error workflow - erroneous input
In the case of a command failure the test exits and reports the erroneous commands
* Pass/Fail Criteria
Pass: The service can run all the specified commands and the results matches the expected results.
Fail: The service fails to run any of the specified commands or the results do not match the expected results.
2. Native SQL Query Support test : implemented
This test is to test whether
AMGA can execute SQL queries to the underlying database.
The test is based on the NIST SQL-92 Test suite.
* Test Suite
It is included at the
AMGA source tar ball.
link
- org.glite.amga.server/test/md-test
- org.glite.amga.server/test/sql-test.cfg
- org.glite.amga.server/test/createTable.amga
For details, Please refer the attached document.
link
* Normal workflow - correct input
Given a valid SQL query, the test should return whether the query was successfully executed.
If the test succeeds it means that this specific functionality of
AMGA is really working.
* Error workflow - erroneous input
In the case of a command failure the test exits and reports the erroneous commands
* Pass/Fail Criteria
Pass: The service can run all the specified commands and the results matches the expected results.
Fail: The service fails to run any of the specified commands or the results do not match the expected results.
3. Authorization test : implemented
The test checks if access control on directories and entries are properly processed at the
AMGA server.
At this test, a root account creates directories and files with various permissions and owners.
Then a user account tries to access them, and tests authorization features of
AMGA.
* Test Suite
It is included at the
AMGA source tar ball.
link
- org.glite.amga.server/test/author/*
For details, Please refer the attached document.
link
* Normal workflow - correct input
Given a query having proper previledge, the test should return whether the query was successfully executed.
Given a query having improper previledge, it should return whether error messages were successfully resulted.
If the test succeeds it means that this specific functionality of
AMGA is really working.
* Error workflow - erroneous input
In the case of a command failure the test exits and reports the erroneous commands
* Pass/Fail Criteria
Pass: The service can run all the specified commands and the results matches the expected results.
Fail: The service fails to run any of the specified commands or the results do not match the expected results.
4. Replication test : implemented
This test initiates two
AMGA services (Master, Slave), and test whether replication are properly producted between them
* Test Suite
It is included at the
AMGA source tar ball.
link
- org.glite.amga.server/test/rep/*
For details, Please refer the attached document.
link
* Normal workflow - correct input
Given a valid query, the test should return whether the query was successfully executed.
If the test succeeds it means that the replication feature of
AMGA is really working.
* Error workflow - erroneous input
In the case of a command failure the test exits and reports the erroneous commands
* Pass/Fail Criteria
Pass: The service can run all the specified commands and the results matches the expected results.
Fail: The service fails to run any of the specified commands or the results do not match the expected results.
5. Test of Federation : implemented
This test initiates two
AMGA services (AMGA1, AMGA2) and one federation service, and test whether data from AMGA1 and AMGA2 are properly federated at the federation service.
* Test Suite
It is included at the
AMGA source tar ball.
link
- org.glite.amga.server/test/fed/*
For details, Please refer the attached document.
link
* Normal workflow - correct input
Given a valid query, the test should return whether the query was successfully executed.
If the test succeeds it means that the federation feature of
AMGA is really working.
* Error workflow - erroneous input
In the case of a command failure the test exits and reports the erroneous commands
* Pass/Fail Criteria
Pass: The service can run all the specified commands and the results matches the expected results.
Fail: The service fails to run any of the specified commands or the results do not match the expected results.
6. Test of Nagios probes for AMGA [#21867]
This is to test Nagios probe unit for
AMGA. Nagios probe for
AMGA must return the status of
AMGA server and response time.
* Test Suite
It is included at the
AMGA source tar ball.
link
- org.glite.amga.server/scripts/check_amga
For details, Please refer the attached document.
link
* Normal workflow
checks if probe returns OK state with "Success|{response time}" message
checks if probe returns WARNING state if connection is slow
checks if probe returns CRITICAL state if connection is not establish
* Error workflow
error cases: none (only server-dependent)
* Pass/Fail Criteria
Pass: The probe can return the result.
Fail: The probe can't return the any result(no response).
7. Test of publishing version information for AMGA server [#21920]
It is to test that create script for publishing version information for
AMGA server. This script is to provide solution for the Glue2 LDAP.
* Test Suite
It is included at the
AMGA source tar ball.
link
- org.glite.amga.server/config/mdservice site test
For details, Please refer the attached document.
link
* Normal workflow
You can get on script file(in you home directory or /var/lib/bdii/gip/provider)
glite-data-metadata-amga
$ cat glite-data-metadata-amga
#!/bin/sh
/usr/bin/glite-info-glue2-simple /etc/glite/info/service/glite-info-glue2-amga.conf test
* Error workflow
error cases: none
* Pass/Fail Criteria
Pass: The script file can be created.
Fail: The command fails to make the target script file(no response).
Features not to be tested
Authentication
Regression tests(For EMI-1)
All regression tests are executed through the functionality test suites at the same time.
There is no Regression test for EMI-2.
RFCs:
task #23409: SL6 platform support for AMGA
task #23474: Debian 6 platform support for AMGA
task #21867: Nagios probes for AMGA
task #21920: publish version information for AMGA server
Description of the test:
Please refer the attached document.
link
Pass/Fail Criteria
Pass: The service can run all the specified commands and the results matches the expected results.
Fail: The service fails to run any of the specified commands or the results do not match the expected results.
Performance and scalability tests
N/A
Standard compliance and conformance tests
N/A
Inter-component tests
N/A