9. Verification and feedback tools#
They are located in the /aster/astest/vers directory where vers refers to the associated version and are also available via the asterix user environment [§12 D1.02.01].
9.1. Aslien: delegation of the right to return#
When developments are dependent, you must be able to render them simultaneously in order to test the code. This requires one of the developers to centralize the developments and to perform the feedback for the other developers.
To avoid problems, developers must delegate their rights of return to the person who centralizes the developments.
This delegation is exclusive for a single version and valid until the new version is updated. However, the delegation can be rendered by the beneficiary, or by the administrator.
A developer can only delegate this right once (for a given version). The beneficiary of a delegation cannot delegate his right to return himself.
9.1.1. Call mode#
*user_beneficiary: Cray user of the developer benefiting from the return delegation.
version: is a parameter that bears the name of the reference version concerned (NEW1, NEW2, NEW3). By default currently: NEW3.
message: definition identical to asno. By default: message_aslien.
9.1.2. Tasks completed#
Verify that the user_payee exists in ident and is different from the caller (iret = 4).
Verify that the caller has not already delegated his right to return (iret = 4).
Verify that the*user_reciaire* has not already delegated his right to return (iret =4).
Verify that the caller is not already a beneficiary of return rights (iret =4).
If iret < 4 complete the link_dvp file with:
user of the caller,
user_beneficiary,
version,
dd/mm/yy date of use of aslien,
(caller_developer_name -> recipient_developer_name) determined from the ident file.
9.2. Aslibe: release from the right to return#
Release of the refund delegation by the beneficiary or the administrator.
9.2.1. Call mode#
user: Cray user of the developer who delegated his right of return.
version: is a parameter that bears the name of the reference version concerned (NEW1, NEW2, NEW3). By default currently: NEW3.
message: definition identical to asno. By default: message_aslibe.
9.2.2. Tasks completed#
Verify that the caller and*user* are different and defined in ident (iret =4).
If the caller is the administrator then delete the link_dvp line containing user in the first field for the version version (if it does not exist iret = 4).
If the caller is a developer then delete the link_dvp line containing in the first field user and in the second field the user of the caller for the version version (if it does not exist iret = 4).
9.3. Asquil: list of return delegations#
List in the asquil message file of all the return delegations granted.
9.3.1. Call mode#
message: definition identical to asno. By default: message_asquil.
9.3.2. Tasks completed#
Copy the link_dvp file into*message*.
9.4. asverif: source check#
Verify that a source set can be introduced in a reference version of the*Code Aster*.
This tool performs some of the tasks carried out by the asrest source retrieval module, which must be used by anyone who actually wants to restore a development.
asverif allows you to check a grouped rendering, in the case where the renderings of several developers are dependent.
asverif works in a temporary directory.
9.4.1. Call mode#
directory is the name of a directory that contains a directory for each developer who wants to restore the source. The names of these directories should be the developer’s User-Cray to determine the author of the rendered source. In each of these directories, you can find, depending on the case, the files:
directory/user (s) /
histor
|
in which we find a description of the changes made (mandatory). |
Fortran |
in which is from source FORTRAN. |
callus |
in which there is an assembly source. |
Catalog |
in which catalog items are found. |
Unigest |
in which we indicate the source units that we want to move from one library to another or delete. |
test/ |
directory in which .comment test case command files and possibly .mail or.para files are located |
c/
|
directory in which files of C functions are located .c. |
message: definition identical to asno. By default: message_asverif.
version is a parameter that bears the name of the reference version in question (NEW1, NEW2, NEW3). By default currently: NEW3.
9.4.2. Tasks completed#
The tasks described below are for all files in the user (s) directories contained in directory. These directories have the name of a Cray user contained in the ident file and for which the caller has a rendering delegation (link_dvp file).
Only the history file (s) is (are) mandatory, the actions described below are, of course, only performed if the files to which they refer exist. In some cases, substitution actions will be carried out, they will be clearly specified.
Destruction of all directories and files located in the « $ TMPDIR/*user (s) * » directory (s) ». Copy the contents of directory/user (s) into the « $ TMPDIR/user (s) » directories.
The module then works from the files in $ TMPDIR /user (s).
The directories $ TMPDIR /user (s) » are write-protected to all users except the administrator user. asverif (who has the administrator’s priorities) then only works in the files of $ TMPDIR /ser (s).
*Checking the type of fortran, catalogu, unigest, unigest, test/*.comm files according to the criteria set out in asno task 1.
Verify that histor is not empty (for every*user*).
Syntactic checks
For Fortran and Histor:
Detecting lines longer than 72 characters and entering the corresponding lines in*message* (iret = 4).
Detecting the lines and writing the corresponding lines in*message* (iret =2) containing:
lowercase characters
characters other than the A-Z alphabet, numbers 0-9, space, tab, and signs:,) (* + - =/”& §! %: « .? $ < > _
Detecting lines and writing corresponding lines in message (iret =4) containing: characters other than the A-Z and a-z alphabet, numbers 0-9, space, tab, and signs:,) (* + – =/”& §! %: « .? $ < >; é è #[]
For catalog:
Detecting lines longer than 72 characters and entering the corresponding lines in*message* (iret = 4).
Detecting the lines and writing the corresponding lines in*message* (iret = 4) containing:
Characters other than the A-Z alphabet, numbers 0-9, and signs:
,) (* + - =/”& §! %; è to _
For unigest:
Detecting lines longer than 72 characters and entering the corresponding lines in*message* (iret = 4).
Verify that each unit is only referenced once across all developers.
*For test/*.comm:
Detecting lines longer than 72 characters and entering the corresponding lines in*message* (iret = 4).
Detecting the lines and writing the corresponding lines in*message* (iret =4) containing:
characters other than the A-Z and a-z alphabet, numbers 0-9 and signs:
,) (* + - =/”& §! %; è to _
For history:
Detecting lines longer than 72 characters and entering the corresponding lines in*message* (iret = 4).
Detection of lines containing a character other than: any character authorized in the various source types except accented characters and writing the corresponding lines in message (iret = 4).
Search for the name of the source units according to the criteria set out for ASNO task B.
Search the noted code file for source units that have already been noted.
If user is not the only one who noted the source unit:
if it is the first a message indicating the name of the unit is written in*message* (iret = 0),
otherwise a message indicating the name of the unit and the name of the first noted author is written in*message* (iret = 4),
If a unit has not been graded a message indicating the name of the unit is written in*message* (iret = 0) and (very kindly) it is noted.
Consistency check with the reference version*version:
*Verify that the source units of Fortran or cal or c/*.c or catalogu:
of type MODIF are returned to the right library and at the same date as the reference version version . ,
of type AJOUT do not already exist in all*Aster* libraries and are rendered in an existing library.
Verify that the specified libraries of the unigest source units to be destroyed are correct for version*version..
Verify that the specified libraries of the unigest source units to be moved are correct for the version*version..
Verify that the test cases:
of type MODIF exist and at the same date as the reference version version,
Type AJOUT don’t already exist
If this is not the case, the offending source units are reported in the message file (iret = 4).
*Destruction of all directories and files in the « $ TMPDIR/*user (s) * » directory.
9.5. asrest: source retrieval#
Verify that a source set can be introduced in a reference version of the*Code Aster* and prepare for the possible update.
This tool performs a certain number of checks and then it starts the passage of reference test cases in a job (at night by default but modifiable).
This tool should be used by anyone who wants to return a development.
Like asverif, asrest allows you to perform a grouped rendering for dependent developments.
9.5.1. Call mode#
directory is the name of a directory. It has the same function as in asverif. Depending on the case, you can therefore find the files in user- CRAY directories:
history,
Fortran,
callus,
catalog,
unigest,
test/
**.comm Test case command file,
**.mail Aster mesh from the test case,
**.mali Ali-Baba mesh from the test case,
**.mgib Gibi mesh from the test case,
**.msup Test case Super-Tab mesh,
**.para Test case execution parameters.
*c/*.c C function files.
Compared to asverif you need to find in the test/ directory all the new or modified files concerning the test cases added or modified.
version: is a parameter that bears the name of the reference version concerned (NEW1, NEW2, NEW3). The value taken by default is NEW3.
message: definition identical to asno. The value taken by default is message_asrest.
classe_job: class of Cray jobs submitted by as.tout.
9.5.2. Tasks completed#
Only the history file (s) is (are) mandatory, the actions described below are, of course, carried out only if the files to which they refer exist. In some cases, substitution actions will be carried out, they will be clearly specified.
Asverif tasks except the destruction of working directories
If*iret ≥ 4 FIN.
Save the complete directory of*directory/user (s) *in the eda/*version/user (s) */user (s) /identifi file (s) *
Insertion in user (s) /histor of the author and the current date.
Updated dates and authors in lines INFO:
lines AJOUT are changed to MODIF,
the dates are set to the date of use of asrest,
the author named by the line is set to*user plus the name of the developer.
Each update is recorded in the summary file eda/version/user/recap
Exploding the*user (s) */fortran routines into the eda/*version/user (s) */bibfor/*bibli*routines with one routine per file,*bibli being the library specified by line INFO.
Copy the routines to be moved from FORDEPLA from the old reference library into eda/ version/user /bibfor/ bibli where bibli is the new library.
Compilation of eda/*version/*user (s) * /bibfor routines, with:
cft77_aster dvpdbg
compilation errors are copied into message (iret = 4), the WARNINGS as well (iret = 2).
The object module is maintained in fortran.o.
(In the case of dependent developments there is a copy in each eda/ version/user concerned.)
If*iret ≥ 4 FIN.
segldr with the object libraries of the version version. The executable module has the name execut.
(In the case of dependent developments there is a copy of execut in each eda/ version/user concerned).
Compiling catalogs (tasks defined for ccat92 minus checks, -which are already done in asrest).
If*iret ≥ 4 FIN.
Copy into eda/*version/*user (s) * the list of test cases to pass (liste_ct.rest) and enrich it with the test cases present in this evolution.
Launch of test cases (by default in night class).
Tasks identical to as.tout with the files created by asrest (execute, catalog of commands and elements if they are present).
The class of test case jobs by default is the night batch (otherwise parameter*job_class*).
The launch of test cases is interrupted if at least 5 test cases do not end with OK.
To pass the tests an eda/ version/user_de_reference /astout directory is created. In this directory you will find all the required test case files. (Those who overload the reference). The results of non-OK test cases will also be in this directory under resu_ NOOK/and resu_ NOOK /flash. (see all.all). The user_de_reference is the caller’s user if he renders the source himself, otherwise it is the first user in alphabetical order of the developers who render.
The.code and.resu files from the test cases added are retained. The information for updating the list of test cases (total time, memory requirements) of the test cases added or modified is retained.
Copy the*message*file into the eda/*version/*user (s) * /message file (s).
Copy the value of iret into the file (s) eda/ version/user (s) /iret.
9.5.3. Files created#
The files created are:
9.6. as.tout: passage of test cases#
Consolidation of a list of test cases with analysis of the results.
Key features of this tool:
construction of the Unicos command scripts for each test case from*Aster data files,
submission of these test cases using Cray’s ability to execute several jobs at the same time,
collecting the results of the various jobs,
production of a summary document of all the test cases sent and possibly execution of an action according to the result of the test cases.
Summary example:
-- A S AND E R -- VERSION 2.05.11 --
— End of all test cases: 12/07/93 at 15:21:01 — Here are the results:
Time CPU Time SYS Time Total Cost
adlv100a OK 5.28 0.92 6.20 13.79 F ahlv100b NOOK_TEST_RESU 6.70 0.65 7.35 16.33 F hplv100a OK 7.80 0.63 8.63 8.42 18.72 F hplv101a OK 4.34 0.72 5.05 11.23 F hplv101b CPU_TIME_LIMIT 6.29 0.82 7.11 15.80 F hsnl100a OK 3.04 0.67 3.71 8.24 F hsnv100a OK 10.81 0.69 11.50 25.56 F ——– —- —————- ——– ——– - ——– - ——– - ——– 7 5 2 44.26 5.09 49.35 109.67 F
PROBLEME AVEC 2 CAS - TESTS
as.tout checks the consistency of the arguments transmitted and then builds and submits a job (qastout) of the same class as that of the test cases. This job builds and submits test case chains and waits for the end of all the test cases launched to format the results and send them to the message file.
9.6.1. Call mode#
as.any parameter_file [message]
parametre_file: File containing the various execution parameters of as.tout.
message: message file. By default message_astout.
parameter_file contains 12 values.
A parameter is the first field in a line that does not start with the character “%”. Therefore, there cannot be several parameters on the same line.
Parameters are recognized in the order in which they are declared. If you want to have the default value of a parameter you have to replace it with the character “.”. Blank lines are allowed.
The settings are as follows:
name of the file containing the list of test cases (no step by default),
directory containing the test case reference files (command, mesh and parameter files with the same organization as in the default reference base /aster/astest/*version /-),
directory containing test case files that will overload the reference files (no default value),
directory receiving the results (no value by default), the files name_cas‑test.resu and name_case-test.code are created there and, if it does not already exist, a flash/ directory is created, it receives the files name_cas‑test.error and name_test.output),
name of the*Aster*executable (by default /aster/*version /execut),
file containing the catalog of compiled commands (by default /aster/*version /catobj/command),
file containing the catalog of compiled elements (by default /aster/*version /catobj/elements),
the Cray job class to pass the test cases: batch or nbatch or wbatch (by default nbatch -night batch-),
the maximum number of test cases that end badly before stopping the launch of the other test cases (no defect),
the*Aster version for test cases (used to determine the names by default, NEW3 by default),
if « DATE » the date and time is added as an extension of the job results, otherwise the extensions.error and .output are added to the name of the test case for the result of Cray jobs,
if « RESOK » the result files of all the jobs started are sent to the result directory; for any other value, only the results of the non-OK jobs are kept.
9.6.2. Tasks completed#
By as.tout:
Parameter check:
Existence of different directories and files.
Verification of the validity areas of the parameters job class, job class, version and date of the « flasher » files.
Verify that the test case names respect the naming rule (letters then numbers and one letter).
If iret ≥ 4 FIN.
Verification of the existence of the .para files for the test cases to be passed.
Construction of the test case launcher job of the same class as the test cases.
Submission of this job by qastout.
By the qastout test case launcher:
Checks the first two tasks of as.tout.
Creation of a directory in /tmp to collect the results of all test cases.
Construction of the jobs of all test cases.
Each job verifies the following principles:
if the parameters NQS are incompatible with the end machine of as.tout (iret=4),
if the test case is not the last step in a chain:
test the return code of the qsub from the following test case,
check with qstat that the test case is taken into account by NQS,
send an email on Cray to the administrator*Aster (d6bhhhh) in case of a problem detected by NQS,
in case of problems NQS call the Lastest Job script.
if the test case is the last in a chain:
call to the Lastest Job script.
Submission of test cases in the form of 16 sequential chains launched in parallel.
The Last_Job script is called for any test case that detects a NQS problem and the last job in each chain. This script must determine if the job that calls it is the last test case running on Cray among all the test cases launched by this ass.tout. If this is the case Dernier_Job invokes the job Dernier_Job.BTC
Job tasks Dernier_job.BTC:
Formatting the result of test cases
For each test case submitted display
of a diagnosis:
OK,
ARRET_ANORMAL (stop not managed by*Aster),
<F>_ SUPERVISEUR (*Aster interrupted by supervisor),
ERREUR_ <F>(other fatal errors detected by*Aster),
ERREUR_ <S>crash??????? with no visible consequences,
<E>_ VOLATILE there is one object left in the volatile database,
NOOK_TEST_RESU (non-compliance with the reference value),
DEFAUT_FICHIER (a file or directory essential to the test case is missing),
CPU_LIMITE (lack of time to finish the test case),
INTERRUPTION_JOB,
from time CPU,
system time,
the total time of the test case,
the cost of the test case.
For all test cases submitted, display:
total CPU time,
of the total system time,
the total time of all test cases,
the cost of all test cases.
9.7. ccat92: compilation of catalogs#
Compilation of catalog units into command files and compiled items.
No consistency check or developer identity check.
9.7.1. Call mode#
ccat92 catalogcatalocatobj [execute [para [version [message]]]]
catalog: file containing the catalog units to be compiled.
catalo: is an output directory that is organized and contains catalog sources broken down into CATALOGUE elements in accordance with the directory of operating versions.
catobj: is an output directory in accordance with the directory of operating versions. catobj contains the catalogs compiled from the version version of Aster « overloaded » by the elements contained in catalogu.
execut: input file that contains the executable module that must compile the catalogu (by default it is /aster/ version /execute).
para: parameter that is set to « private » when using ccat92 in asrest and which allows compiled catalogs to be marked PRIVE.
version and*message*: definitions identical to asno (default*message* = message_ccat92).
9.7.2. Tasks completed#
Verify that catalog is indeed of type CATALOGU (first ASNO task).
Exploding sub-catalogs in catalo/
If*iret* ≥ 4 FIN
In the working directory, establish a symbolic link with all the catalogs in the reference version.
Perform the « overload » with the units from the catalog file by copying the files from catalo.
Compilation of the order catalog:
Concatenation of all command sub-catalogs in fort.3,
Assigning file “COMMANDE_PRIVEE” to strong.3,
Compiling the file “COMMANDE_PRIVEE” with*Aster*(*execut*or the executable by default of*version),
If iret 4 FIN,
Copy compilation messages by*Aster* into message (fort.6)
Copy the error file (strong.9) to*message*.
Otherwise save the result of the compilation of the commands in catobj/command.
Compilation of the catalog of elements:
copy complelem/grandeurs_1ere.cata into fort.4,
count the number of sub-catalogs in options/ (=*nb_opt),
add “OPTION_SIMPLE*nb_op” in fort.4,
add all the options sub-catalogs/in fort.4,
add “FIN” in fort.4,
add all subcatalogs of typelem/ in fort.4,
add “FIN” in fort.4,
add compelem/type_maille.cata in fort.4,
add compelem/modes_sharees.cata part in fort.4,
add compelem/phenomenes_modelisation.cata in fort.4.
If*version* is NEW1 or STA1 there is no compilation with*Aster*. The result is just the concatenation described above.
Otherwise compilation with*Aster* using the previously compiled command catalog, if it exists.
If iret < 4 save the result of the compilation of the elements in catobj/elements.
If not:
Copy compilation messages by*Aster*to*message (strong.6).
Copy the error file (strong.9) to*message