Test Suite for LibreDwg
The aim of the Test Suite is to test the reading and writing capabilities of LibreDwg for various versions of DWG files. The Test Suite is divided in two parts.
1) XML Suite
2) Unit Tests
XML suite contains various dwg files. Each dwg file contains one single object like Line, Ray, Construction Line, etc. XML Suite also contains a jpg file for each dwg file. All entity information of each file is stored in the form of text file. These text file were automatically generated by AutoLISP script. These text files are then converted into XML by a python script.
Every DWG file will have a corresponding XML file. The XML file will have all properties of elements in DWG file. For Example A DWG file with a single line with starting coordinate as (1.2354668,4.5698759,-12.567988), end coordinate as (-4.26648,56.5648985,54.567989), color as "red", lineweight as 2.25, layer as "LAYERNAME", linetype as "dotted", linetypescale as "1.25" and so on... The xml file can have a strucutre as follows
<?xml version="1.0" encoding='UTF-8'?> <DwgEntity> <line id="123456789" StartX="1.2354668" StartY="4.5698759" StartZ="-12.567988" EndX="-4.26648" EndY="56.5648985" EndZ="54.567989" Color="red" Lineweight="2.25" Layer="LAYERNAME" Linetype="dotted" Linetypescale="1.25" /> </DwgEntity>
When the XML Suite is executed, the same DWG files are then read by a C Program which then outputs the XML in the same format as above. Then both the XML's are compared to generate the report regarding the support of LibreDWG for each format.
Current output of XML Suite is as follows:
Output for 2000 Format Circle.xml was read 20% Attribute Details The value of radius is 5.25, It should be 5.2564 ... ...
DejaGNU has been used to write Unit Tests. Each file contains tests for specific group of functions. Each file has a corresponding EXP file which runs the tests. It is needed by DejaGNU as it depends on expect for the result. All these tests are executed when you run the testsuite. The result of Tests will be displayed in your terminal when you run TestSuite. The format would be similar to this
# no of passes : 51 # no of fails : 5
TestSuite requires the following packages to be installed. Just execute the following command in terminal
sudo apt-get install dejagnu libxml2 libxml2-dev python-libxml2
Running the testsuiteTo run the testsuite, you just have to run
make check. It will first run the XML Suite and then execute the Unit Tests.
Viewing the results
After running the test, the results of the unit tests will be displayed in your terminal in the end. The result of the XML Suite will be displayed on the terminal as well as an HTML file will be created. The terminal output doesn't contains information about attributes mismatch. The HTML file will display the detailed result. Open the HTML in the browser to view the result.
Many of the attributes don't match and there is no information regarding them. The HTML Result generated contains only result of XML Suite. DejaGNU has not provision to output html file.