Group: LibreDWG/TestSuite

From LibrePlanet
Jump to: navigation, search
m (moved LibreDWG/TestSuite to Group:LibreDWG/TestSuite: Consistent with rest of wiki namespace)
(Updated page with Test Suite details)
Line 1: Line 1:
 
=== Test Suite for LibreDwg ===
 
=== 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 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.
  
==== Test Suite using testSVG script. ====
+
1) XML Suite
  
Test suite contains various dwg files. Each dwg file contains one single object like ''Line, Ray, Construction Line,'' etc.
+
2) Unit Tests
  
Test Suite also contains a png file for each dwg file.
+
==== XML Suite ====
  
testSVG is script that converts a dwg file into a svg file.
+
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.
  
When the Test Suite runs, it converts all dwg files into svg files. If there are errors in conversion, then an error file is created instead of svg file. Finally the result is seen in form of a webpage where the original PNG files are shown next to the svg file. If both appear similar then the test for that particular file is successful. In case of errors the error message is shown.
+
Every DWG file will have a corresponding XML file. The XML file will have all properties of elements in DWG file.
 
 
==== Running the testsuite ====
 
Copy testsuite folder in libredwg folder and run the script test.sh in it.
 
 
 
==== Viewing the results ====
 
After running the test, a new results.htm file will be created. Open the file in a browser to view the results.
 
 
 
==== Limitations ====
 
SVG do not support many features that are available in DWG. Thus many features of DWG can not be tested using the current testsuite
 
 
 
==== XML based TestSuite ====
 
This is just an idea open for discussions.
 
Every DWG file used for test will have a corresponding XML file. The XML file will have all properties of elements in DWG file.
 
 
For Example
 
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...
 
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...
Line 31: Line 18:
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding='UTF-8'?>
 
<?xml version="1.0" encoding='UTF-8'?>
<DWGELEMENT>
+
<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" />
 
<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" />
</DWGELEMENT>
+
</DwgEntity>
 +
</pre>
 +
 
 +
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:
 +
<pre>
 +
Output for 2000 Format
 +
 
 +
Circle.xml was read 20%
 +
 
 +
Attribute Details
 +
The value of radius is 5.25, It should be 5.2564
 +
...
 +
...
 
</pre>
 
</pre>
  
This xml file can be created manually or using a autolisp, VBA in Autocad
+
==== Running the testsuite ====
 +
 
 +
To run the testsuite, you just to run <pre>make check</pre>. It will first run the XML Suite and then execute the Unit Tests.
 +
 
 +
==== Viewing the results ====
 +
 
 +
After running the test, a new results.htm file will be created. Open the file in a browser to view the results.
 +
 
 +
==== Limitations ====
  
The testSVG script can be modified to generate an XML file as above. The XML file generate by testSVG can be comapred with the XML from the TESTSUITE which was created manually or using a autolisp, VBA in Autocad. If both the XML files are matching then the reading capabilities of LibreDwg for that particular drawing file is OK.
+
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.

Revision as of 14:21, 17 August 2014

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

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
...
...

Running the testsuite

To run the testsuite, you just to run

make check

. It will first run the XML Suite and then execute the Unit Tests.

Viewing the results

After running the test, a new results.htm file will be created. Open the file in a browser to view the results.

Limitations

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.