summaryrefslogtreecommitdiffstats
path: root/ini/ini_parse_ut.c
Commit message (Collapse)AuthorAgeFilesLines
* Properly handle file permissions for ini_parse_ut startup_test()Stephen Gallagher2012-05-151-17/+6
|
* Fix issue when running make distcheckStephen Gallagher2012-05-151-11/+5
| | | | | | | | When running 'make distcheck', all files in the $srcdir are set to read-only, to ensure that the build does not modify the source. However, this broke our ability to test file permissions. We will now copy the file to the builddir and do the tests there, where we have control.
* Initialize variables in loopsDmitri Pal2012-04-051-0/+4
| | | | | | | | | It occured to me that one of the issues that Coverity did not like (and I could not understand what it is complaining about) is related to intializing the variables in the loop. This patch adds initialization in the loops. Also there was an initialization missing in the ini_configobj.c
* Rename error print functionDmitri Pal2012-04-051-4/+4
| | | | | | | | | | All config file processing functions start with "ini_config". The only function that does not comply is ini_print_errors. We can't rename it since it is a part of the current active interface. I marked that function needs to be removed when we remove old interface and created a copy with the correct name. I also updated unit test accordingly.
* Tests for access and changesDmitri Pal2012-04-051-0/+283
| | | | | Patch adds two functions. One tests permissions, another validates if the file has changed or not.
* Separate close and destroyDmitri Pal2012-04-051-5/+5
| | | | Allow closing file without destroying the context.
* Test for all section merge modesDmitri Pal2012-04-051-13/+201
| | | | | | New test reads smerge.conf in all possible modes and compares the combined result with the sexpect.conf function.
* Test DETECT mode and use new fileDmitri Pal2012-04-051-7/+23
| | | | | | Patch adds smerge.conf file to the list of files to test and adds test for the DETECT mode for inidividual values.
* Adding missing constDmitri Pal2011-01-031-1/+1
| | | | One liner to eliminate compilation warning.
* Correcting paths to test filesDmitri Pal2010-12-211-14/+6
| | | | | | | | The paths to test files did not work in parallel build or 'make diskcheck' cases. Now they are corrected. All temp files are created in the build directory and read from there.
* Allow merging valuesDmitri Pal2010-12-211-0/+203
| | | | | | | | | | | | | | | | This patch is the first pass at merging functionality. It implements merging of values that belong to the same section. Patch includes: * Definition of merge flags in doxy format * Definition of the masks in internal header * Changes to parser to handle the merging of values. * Also swithed parser to not use ini_config.h as I want to switch implementation of the current interface to new interface at some point. * New unit test was created. * New config file for this unit test was added to ini.d Main code changes are in ini_parse.c
* New copy and folding functionalityDmitri Pal2010-12-211-38/+91
| | | | | | | | | | | | | | | | * Added method to copy configuration. * Added unit test for it. * Added method to reset boandary for the whole configuration. * Added unit test for it. * Unit test now can read a file save it read again and save. Both saves produce same files! * Reworked the way the parser was dealing with empty lines. It was sutting off the value in the middle if the folded line consisted of just spaces.
* Fix overflow in ini_parse unit testSumit Bose2010-09-231-3/+2
|
* Introducing configuration file objectDmitri Pal2010-09-221-19/+24
| | | | | | | | The patch contains two major pieces of work: * The beginning of the new INI interface significantly re-thought and reworked. * The implementation of the file object. Parsing was adjusted to use this object.
* Starting to consolidate the new interface in one placeDmitri Pal2010-09-221-3/+2
| | | | | | | | | | I realized that the new high level interface should be defined in one file instead of being scattered in many headers. I would have to eventuallu eliminate ini_configobj.h too and move everything to the new interface in ini_config.h. This patch renames couple functions to be consistent with the naming convention and removes ini_parse.h header.
* New INI parserDmitri Pal2010-09-221-0/+209
The parser is added to the existing module. The old parsing functuion will be removed when we switch to the new interface. Parser logic: * There is one high level function that wraps the parser interface. It is at the bottom of the module. ini_parse_config(); * Internally it creates a perser object and then runs parser on it. * At the end parser object is destroyed. * This object stores the state of the parser. * The parser has an action queue * There are several actions that parser can perform - read line - inspect read line - record an error - process last comment in the file (POST) * Each action handler determines what to do next depending upon what has happened. * Read handler reads lines and enqueues inspection action in case of success or error action in case of failure. * Inspection action parses last read line and treats it either is a: * Comment * Section * New key + value * Continuation of the value In case of error the error action is enqueued. * Error can be fatal or non fatal. It depend on the error_level flag passed in. If the error is non fatal the read action is enqueued otherwise parser stops. * The POST action is a special action to handle comment at the bottom of the file. The comment is stored with the value it preceeds so in case there is a comment at the bottom of the file a special value needs to be created to hold just the comment.