AMGA Test Plan For EMI3
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.4.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_2013/index.html
Code Coverage %, if available.
Overall coverage rate:
lines......: 8.0% (2030 of 25241 lines)
functions..: 12.3% (287 of 2337 functions)
These values are the result of simple unit test about
AMGA.
Deployment tests
Installation
The YUM and APT repositories needed to install the component are :
SL5 : http://eticssoft.web.cern.ch/eticssoft/mock/emi-3-rc-sl5.repo
SL6 : http://eticssoft.web.cern.ch/eticssoft/mock/emi-3-rc-sl6.repo
Deb6 : http://eticssoft.web.cern.ch/eticssoft/pbuilder/emi-3-rc-deb6.list
The YUM command needed to test a clean installation is :
$ sudo yum install emi.amga.amga-server
The APT command needed to test a clean installation is :
$ sudo apt-get install emi.amga.amga-server
The YUM command needed to test an upgrade installation :
$ sudo yum upgrade emi.amga.amga-server
The APT command needed to test an upgrade installation :
$ sudo apt-get 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
$ sudo -u postgres psql -q -U arda metadata < /opt/glite/share/doc/glite-amga-server/upgradePG_23_24.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
- emi.amga.amga-server-2.4.0/test/md-test
- emi.amga.amga-server-2.4.0/test/md-test.cfg
For details, Please refer the attached document.
Test plan
* 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
- emi.amga.amga-server-2.4.0/test/md-test
- emi.amga.amga-server-2.4.0/test/sql-test.cfg
- emi.amga.amga-server-2.4.0/test/createTable.amga
For details, Please refer the attached document.
Test plan
* 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
- emi.amga.amga-server-2.4.0/test/author/*
For details, Please refer the attached document.
Test plan
* 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
- emi.amga.amga-server-2.4.0/test/rep/*
On Debian, you must use -deb script file for the initailization of test.(ex:rep-preprae-deb)
For details, Please refer the attached document.
Test plan
* 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
- emi.amga.amga-server-2.4.0/test/fed/*
On Debian, you must use -deb script file for the initailization of test.(ex:rep-preprae-deb)
For details, Please refer the attached document.
Test plan
* 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(EMI-2) [#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.
Test plan
* 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(EMI-2) [#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
This test doesn't work on Debian.
For details, Please refer the attached document.
Test plan
* Normal workflow
You can get on a 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).
8. EMIR Rollout support(EMI-3) [#31968]
It is to test that create a json file for EMIR.
* Test Suite
It is included at the
AMGA source tar ball.
link
- emi.amga.amga-server-2.4.0/config/mdservice json
For details, Please refer the attached document.
Test plan
* Normal workflow
You can get on a json file(in you home directory)
amga_json
[ //AMGA Service Endpoints Records
{
"Service_ID":"sl56-x86-64.kisti.re.kr_amga_4136553197"
"Service_CreationTime":"2013-02-04T01:42:47Z"
"Service_Name":"test-AMGA"
"Service_Type":"org.glite.AMGA"
"Service_Endpoint_ID":"sl56-x86-64.kisti.re.kr_amga_4136553197_org.glite.AMGA_4136553197"
"Service_Endpoint_URL":"amga://sl56-x86-64.kisti.re.kr:8822/"
"Service_Endpoint_Capability":"data.access.relational"
"Service_Endpoint_InterfaceName":"org.glite.AMGA"
"Service_Endpoint_InterfaceVersion":"2.0.0"
"Service_Endpoint_QualityLevel":"production"
}
]
* Error workflow
error cases: none
* Pass/Fail Criteria
- Pass: The json file can be created.
- Fail: The command fails to make the target script file(no response).
Features not to be tested
Authentication
Regression tests
All regression tests are executed through the functionality test suites at the same time.
RFCs:
task #34088: AMGA v. 2.3.0-2(For Debian6)
task #31968: EMIR rollout for AMGA
task #34170: AMGA: RPMlint errors
task #31998: Documentation of configuration variables for AMGA
Description of the test:
Please refer the attached document.
Test plan
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
Interproduct tests
AMGA, BDII Core
Test that the
AMGA GLUE2 service information is correctly published in the BDII
The YUM command needed to install BDII is :
$ sudo yum install yum install emi-bdii-site
The initializing command needed to set script file is :
$ sudo /etc/init.d/mdservice site
Start or restart bdii :
$ /etc/init.d/bdii start ( or restart )
You can use following command to check result :
$ ldapsearch -x -h localhost -p 2170 -b o=glue
* Normal workflow
You can get on a script file(in /var/lib/bdii/gip/provider directory)
lapsearch returns LDIF entries.
* Error workflow
In the case of a command failure the test exits and reports the erroneous commands
* Pass/Fail Criteria
- Pass: lapsearch returns correct entries(included amga entry).
- Fail: lapsearch can't return the any result or there is no amga entry in returned entry set.
*
AMGATestPlanForEMI3_v0.1.pdf:
AMGA Test Plan For EMI3 0.1