From 7f78912c9fa4e5b9b265738584a75e89a63513c1 Mon Sep 17 00:00:00 2001 From: hanchao Date: Mon, 5 Dec 2016 21:07:31 +0800 Subject: [PATCH] test code for issue #729 --- .../tests/configs/generate_protostr.sh | 2 + .../tests/configs/run_tests.sh | 11 +++-- .../test_config_parser_for_non_file_config.py | 40 +++++++++++++++++++ 3 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 python/paddle/trainer_config_helpers/tests/configs/test_config_parser_for_non_file_config.py diff --git a/python/paddle/trainer_config_helpers/tests/configs/generate_protostr.sh b/python/paddle/trainer_config_helpers/tests/configs/generate_protostr.sh index e55f9bd3884..a54af94ce3d 100755 --- a/python/paddle/trainer_config_helpers/tests/configs/generate_protostr.sh +++ b/python/paddle/trainer_config_helpers/tests/configs/generate_protostr.sh @@ -11,10 +11,12 @@ for conf in ${configs[*]} do echo "Generating " $conf python -m paddle.utils.dump_config $conf.py > $protostr/$conf.protostr.unittest + cat ${conf}.py |python test_config_parser_for_non_file_config.py > $protostr/$conf.protostr.non_file_config.unittest done for conf in ${whole_configs[*]} do echo "Generating " $conf python -m paddle.utils.dump_config $conf.py "" --whole > $protostr/$conf.protostr.unittest + cat ${conf}.py |python test_config_parser_for_non_file_config.py --whole > $protostr/$conf.protostr.non_file_config.unittest done diff --git a/python/paddle/trainer_config_helpers/tests/configs/run_tests.sh b/python/paddle/trainer_config_helpers/tests/configs/run_tests.sh index 73f8b333b23..ed2ac6ed18b 100755 --- a/python/paddle/trainer_config_helpers/tests/configs/run_tests.sh +++ b/python/paddle/trainer_config_helpers/tests/configs/run_tests.sh @@ -16,20 +16,23 @@ if [ -z $1 ]; then do base_protostr=$protostr/$file new_protostr=$protostr/$file.unittest - diff $base_protostr $new_protostr -u + diff $base_protostr $new_protostr -u && + diff $protostr/$file $protostr/$file.non_file_config.unittest -u done else for file in ${configs[*]} do if ! $1 $protostr/$file.protostr $protostr/$file.protostr.unittest; then - diff $protostr/$file.protostr $protostr/$file.protostr.unittest -u + diff $protostr/$file.protostr $protostr/$file.protostr.unittest -u && + diff $protostr/$file.protostr $protostr/$file.protostr.non_file_config.unittest -u fi done for file in ${whole_configs[*]} - do +do if ! $1 $protostr/$file.protostr $protostr/$file.protostr.unittest --whole; then - diff $protostr/$file.protostr $protostr/$file.protostr.unittest -u + diff $protostr/$file.protostr $protostr/$file.protostr.unittest -u && + diff $protostr/$file.protostr $protostr/$file.protostr.non_file_config.unittest -u fi done fi diff --git a/python/paddle/trainer_config_helpers/tests/configs/test_config_parser_for_non_file_config.py b/python/paddle/trainer_config_helpers/tests/configs/test_config_parser_for_non_file_config.py new file mode 100644 index 00000000000..71ee0499d16 --- /dev/null +++ b/python/paddle/trainer_config_helpers/tests/configs/test_config_parser_for_non_file_config.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# Copyright (c) 2016 Baidu, Inc. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import getopt + +whole = False +opts, args = getopt.getopt(sys.argv[1:], "", ["whole"]) +for op, value in opts: + if op == "--whole": + whole = True + +cmdstr = """ +from paddle.trainer.config_parser import * +from paddle.trainer_config_helpers import * +def configs():\n""" + +for line in sys.stdin: + if "import" in line and "from" in line: + continue + cmdstr = cmdstr + " " + line + +if whole: + cmdstr = cmdstr + """print parse_config(configs, "")""" +else: + cmdstr = cmdstr + """print parse_config(configs, "").model_config""" + +exec(cmdstr) -- GitLab