-
Notifications
You must be signed in to change notification settings - Fork 2
expertisesolutions/tctautomated
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
TCT automated: Template-based Eolian TCT tests generator
===============================================================================
TCT automated is a Python Script using the Testgen and Pyolian to generate TCT
tests rendering templates with custom files, this can generate TCT tests to
Emono eolian CSharp.
Installation
============
You will need to use the `EFL_DIR` environment variable to TCTautomated can
find Testgen classes and other eolian files
Other requirement is that **the source EFL tree must be already built** (not
installed) because pyolian search the eolian .so/.dll inside the source tree.
If you built the efl tree in a custom location (fe, you build out-of-tree) you
can tell pyolian where to find the built eolian .so files using the
`EOLIAN_SO_DIR` environment variable.
Optionally you can use `EFL_DIR` environment variable to define the efl root path
Command line usage
==================
The simplest way to use the generator is from the command line, using the
`autogen.py` command, the `--help` option state:
usage: autogen.py [-h] [--name NAME] [--dir DIR] [--efl EFL]
TCTautomated.
optional arguments:
-h, --help show this help message and exit
--name NAME, -n NAME Suite name and where look custom files.
--dir DIR, -d DIR Destination path to write generated files.
--efl EFL, -e EFL Efl Root Path
How customise a Generated Test
==============================
TCTautomate use the filesystem to find custom files if you need customise a test,
add/write follow files in src/tests:
Suite custom files
* `./<suitename>/`
|-> <suitename>_custom.cs #add include files, functions or structs
|-> <suitename>_init.cs #add code in SUITE_INIT
|-> <suitename>_shutdown.cs #add code in SUITE_SHUTDOWN
Class Test case custom files
* `./<suitename>/<class_name>/` #use lowercase and `_` separator
|-> custom.cs #add include files, functions or structs
|-> init.cs #add default way to create the object of this class
|-> shutdown.cs #add default way to free the object
|-> criteria_custom.cs #change CRITERIA in constructor test
Funtions Tests
- Tests methods custom files
* `./<suitename>/<class_name>/<method_name>/`
|-> arg_init.cs #initialize method arguments (arg_<argument_name>)
|-> init.cs #add how to create the object (replace default)
|-> arg_shutdown.cs #free arguments
|-> shutdown.cs #add how to free the object (replace default)
|-> criteria_custom.cs #change CRITERIA in this method test
- Tests properties custom files
* `./<suitename>/<class_name>/<property_name>/`
| -- Property Get --
|-> arg_get_init.cs #initialize property get arguments (arg_<argument_name>)
|-> get_init.cs #how to create the object (replace default)
|-> arg_get_shutdown.cs #free arguments
|-> get_shutdown.cs #how to free the object (replace default)
|-> get_criteria_custom.cs #change get property CRITERIA
| -- Property Set --
|-> arg_set_init.cs #initialize propety set arguments (arg_<argument_name>)
|-> set_init.cs #how to create the object (replace default)
|-> arg_set_shutdown.cs #free arguments
|-> set_shutdown.cs #how to free the object (replace default)
|-> set_criteria_custom.cs #change set property CRITERIA
Event Tests
- Tests Events custom files
* `./<suitename>/<class_name>/<event_name>/`
|-> init.cs #add how to initialize the objects
|-> custom.cs #add customizations in callback
|-> shutdown.cs #add shutdown or any method to call the event
Criteria Special criteria custom Tests
- Criteria MAE tests custom files
* `./<suitename>/<class_name>/<function_name>/`
|-> irange_init.cs #initialize in range MAR custom args (or use default value)
|-> orange_init.cs #initialize out of range MAR custom args (or use MaxValue)
- Criteria PMAX/PMIN tests custom files
* `./<suitename>/<class_name>/<function_name>/`
|-> pmax_init.cs #initialize PMAX custom args (or use MinValue)
|-> pmin_init.cs #initialize PMIN custom args (or use MaxValue)
- Criteria PAM/PBM tests custom files
* `./<suitename>/<class_name>/<function_name>/`
|-> pam_init.cs #initialize PAM custom args (or use MinValue)
|-> pbm_init.cs #initialize PBM custom args (or use MaxValue)
- Criteria PEX/MEX tests custom files
* `./<suitename>/<class_name>/<function_name>/`
|-> mex_init.cs #initialize MEX custom init
|-> mex_shutdown.cs #initialize MEX custom shutdown
|-> mex_arg_init.cs #initialize MEX custom args
|-> mex_arg_shutdown.cs #initialize MEX custom args shutdown
|-> pexg_init.cs #initialize PEX GET custom init
|-> pexg_shutdown.cs #initialize PEX GET custom shutdown
|-> pexg_arg_init.cs #initialize PEX GET custom args
|-> pexg_arg_shutdown.cs #initialize PEX GET custom args shutdown
|-> pexs_init.cs #initialize PEX SET custom init
|-> pexs_shutdown.cs #initialize PEX SET custom shutdown
|-> pexs_arg_init.cs #initialize PEX SET custom args
|-> pexs_arg_shutdown.cs #initialize PEX SET custom args shutdown
to make some custom files you only need a code using:
`parent` -> default name of parent object
`obj` -> default name of current object
`arg_<name>` -> replace <name> with functions arguments name
you can use *custom.cs (suite or class) to add specilized code
Some class or function test don't need a test in some Suite, you can disable test generated
of it with a blank file as following:
#use lowercase and `_` as separator
`/<suitename>/<class_name>` #don't generate test for <class_name>
`/<suitename>/<class_name>/method_name` #don't generate test for <method_name>
`/<suitename>/<class_name>/<property_name>` #don't generate test for this property
`/<suitename>/<class_name>/<property_name>_get` #don't generate test for this property get
`/<suitename>/<class_name>/<property_name>_set` #don't generate test for this property set
Where to find more info
=======================
* read the Pyolian README file in EFL scripts
* read the eolian.py file (it declare the full eolian API)
* read the generator.py file (it's super simple)
* read the original [pyratemp docs](https://www.simple-is-better.org/template/pyratemp.html)
Note
====
This markdown file is mirrored in efl src tree (src/scripts/pyolian) and in
phab wiki (phab.enlightenment.org/w/pyolian). Don't forget to update the other
if you change one!
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published