From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail5.wrs.com (mail5.windriver.com [192.103.53.11]) by dpdk.org (Postfix) with ESMTP id B4C482BE5 for ; Fri, 31 Mar 2017 15:52:25 +0200 (CEST) Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail5.wrs.com (8.15.2/8.15.2) with ESMTPS id v2VDqMYr010620 (version=TLSv1 cipher=AES128-SHA bits=128 verify=OK); Fri, 31 Mar 2017 06:52:22 -0700 Received: from yow-cgts4-lx.wrs.com (128.224.145.137) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server (TLS) id 14.3.294.0; Fri, 31 Mar 2017 06:52:21 -0700 From: Allain Legacy To: , CC: , , Date: Fri, 31 Mar 2017 09:51:57 -0400 Message-ID: <20170331135203.117461-1-allain.legacy@windriver.com> X-Mailer: git-send-email 2.12.1 In-Reply-To: <20170330185407.61220-1-allain.legacy@windriver.com> References: <20170330185407.61220-1-allain.legacy@windriver.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [128.224.145.137] Subject: [dpdk-dev] [PATCH v5 0/6] librte_cfgfile enhancements X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2017 13:52:26 -0000 This patchset includes some minor enhancements that we have developped for our DPDK application. We would like to contribute them upstream to help ease adoption of the DPDK by anyone looking for this type of functionality. The commit logs on each patch should be self-sufficient in explaining the intent and purpose. v2: * Added unit tests for the cfgfile library in the initial patch of the series and then added additional tests in subsequent patches where appropriate. These will not run unless the following config parameter is set and additional packages are installed (e.g., libarchive-dev): CONFIG_RTE_APP_TEST_RESOURCE_TAR=y * Reworked the configurable comment character patch to allow specifying a different character at runtime rather than build time. Used a separate API to avoid affecting existing users or users that choose not to leverage the extended API. Used a "parameters" structure to pass additional arguments rather than adding more arguments to the function to allow expansion in the future with minimal impact on existing users. * Dropped the patch to initialize the cfg structure because the segfault that this was trying to address was already fixed by 2 earlier commits which we did not have in our development environment. I realized this while trying to add unit tests to catch the segfault case. * Fixed the doxygen comments related to the RTE_CFG_GLOBAL_SECTION patch * Added an additional patch to allow parsing a key with an empty value (i.e., "key="). I realized that I had forgotten to include this in my first patchset. v3: * Incorporated review feedback to validate comment chars * Incorporated review feedback to keep flags as standalone argument instead of grouping it within the new params argument for comment characters * Incorporated review feedback to remove the params initialization function and instead require users to initialize all fields to defaults on their own. * Incorported review feedback to require a flag to allow empty value strings * Adjusted unit tests to accommodate above changes. * Reworded commit title to fix typo "unamed" * NOTE: This patchset version was incomplete on dpdk.org because of an email spam filter issue. v4: * Changed flag defines to unnamed enum * Removed comment references to rte_cfgfile_init_params() since it was removed from the implementation * Moved field comments to above definition instead of below in the rte_cfgfile_parameters definition v5: * Removed stray @param notation in rte_cfgfile.h file * Updated rte_cfgfile_version.map file to add new public API Allain Legacy (5): test: basic unit tests for cfgfile cfgfile: add support for global properties section cfgfile: add support for configurable comment character cfgfile: use strnlen to constrain memchr search cfgfile: add support for empty value string Joseph Richard (1): cfgfile: increase local buffer size for max name and value MAINTAINERS | 1 + lib/librte_cfgfile/rte_cfgfile.c | 102 +++++++- lib/librte_cfgfile/rte_cfgfile.h | 44 +++- lib/librte_cfgfile/rte_cfgfile_version.map | 7 + test/test/Makefile | 2 + test/test/test_cfgfile.c | 322 ++++++++++++++++++++++++ test/test/test_cfgfiles/etc/empty.ini | 0 test/test/test_cfgfiles/etc/empty_key_value.ini | 3 + test/test/test_cfgfiles/etc/invalid_section.ini | 3 + test/test/test_cfgfiles/etc/line_too_long.ini | 3 + test/test/test_cfgfiles/etc/missing_section.ini | 2 + test/test/test_cfgfiles/etc/sample1.ini | 12 + test/test/test_cfgfiles/etc/sample2.ini | 12 + 13 files changed, 503 insertions(+), 10 deletions(-) create mode 100644 test/test/test_cfgfile.c create mode 100644 test/test/test_cfgfiles/etc/empty.ini create mode 100644 test/test/test_cfgfiles/etc/empty_key_value.ini create mode 100644 test/test/test_cfgfiles/etc/invalid_section.ini create mode 100644 test/test/test_cfgfiles/etc/line_too_long.ini create mode 100644 test/test/test_cfgfiles/etc/missing_section.ini create mode 100644 test/test/test_cfgfiles/etc/sample1.ini create mode 100644 test/test/test_cfgfiles/etc/sample2.ini -- 2.12.1