…
|
||
---|---|---|
.. | ||
Make | ||
ensightFoamReaderTest | ||
global_extern_proto.h | ||
global_extern.h | ||
README | ||
udr_checker-80.c | ||
udr_checker-90.c | ||
udr_checker.c |
udr_checker ----------- udr_checker.c is a routine that can be used to debug EnSight User-defined readers. It exists because of the difficulty of debugging dynamic shared libraries when you don't have the source for the calling program (EnSight). If udr_checker.c is compiled and linked with your reader source code (including access to any libraries needed, and the global_extern.h file), it will exercise most options of you reader, giving feedback as it goes. The resulting executable can be debugged using your favorite debugger. And if you have memory/bounds checking software (such as purify), you can (and should) run it with this executable to make sure that you are not overwriting things. Readers that bash memory will cause problems when run with EnSight! You will note that the Makefile provided with the readers in the EnSight distribution have a "checker" object. If you do a "make checker" instead of just a "make", the "checker"executable will be produced. You may need to modify these makefiles slightly if the locations of your reader files are different than the normal. -------------------------------------- Once the "checker" executable exists, you can run the checker program by simply invoking it: > checker And you will be prompted for the type of information that you provide in the EnSight Data Reader dialog, namely: The path filename_1 [filename_2] Only if your reader uses two fields swapbytes flag <toggle flags> Only if your reader implements extra GUI <pulldown flags> one flag value per line <field contents> one field string per line There are certain command line options that you can use to control some aspects of the checker program. One of the more useful is the ability to provide the input just described in a file. This is done in this fashion: > checker -p <playfile> And <playfile> would be a simple ascii file with 3 [0r 4] lines: line 1: the path line 2: filename_1 line 3: [filename_2] (if two_fields is TRUE) line 3 or 4: 0 or 1, for swapbytes (0 is FALSE, 1 is TRUE) remaining lines 0 or 1 for toggle disable enabled one line for each toggle 0 - num_pulldown_values for pulldown choice one line for each pulldown strings one line for each field example playfile for an EnSight Gold reader casefile (entitled cube.play) could look something like the following: (Note: two_fields is FALSE) ------------------- /usr/local/bin/data/ens cube.case 0 And you would invoke checker as: > checker -p check.play Another example playfile with swapbytes 0, two enabled toggles, three pulldowns with the value 0 chosen and a single field "sample field value" could look something like the following:: ---------------------- /mydirectory/subdir/ myfile 0 1 1 0 0 0 sample field value Other command line arguments are: --------------------------------- -server_number For checking server number routines. If you use this option, you will be prompted for the total number of servers and the current server number. These will then be used in the calls to the server number routines. -gts # For specifying the geometry timestep to test. The default is step 0. The # is the (zero based) time step to read for geometry. -vts # For specifying the variable timestep to test. The default is step 0. The # is the (zero based) time step to read for variables. Testing optional routines using #defines ----------------------------------------- For optional routines, such as the extra_gui, or var_extract_gui routines, you must uncomment the proper #define in udr_checker.c Currently the ones available are: #define _EGS for extra gui routines #define _VES for var extract gui routines