diff options
author | P. J. McDermott <pj@pehjota.net> | 2014-08-15 22:24:13 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2014-08-15 22:24:13 (EDT) |
commit | a9a891da7b64eda13e2f28264522d185f0a62574 (patch) | |
tree | b8cb3aaa817e1595492c1dc9e7a5d88f3267d6e0 /tests/parse_control.sh | |
parent | f894612ddeaa8fea346d9527bad9363cca92bf6e (diff) |
tests/parse_control.sh: New test
Diffstat (limited to 'tests/parse_control.sh')
-rwxr-xr-x | tests/parse_control.sh | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/parse_control.sh b/tests/parse_control.sh new file mode 100755 index 0000000..a53095d --- /dev/null +++ b/tests/parse_control.sh @@ -0,0 +1,77 @@ +#!/bin/sh +# +# ProteanOS Development Kit +# tests/parse_control.sh +# parse_control() tests +# +# Copyright (C) 2014 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. tests/common.sh + +use output +use control + +load_locale + +p=1 +f=1 + +field() +{ + case ${p} in + 1) + case ${f} in + 1) + assert [ "x${1}" = 'xPackage' ] + assert [ "x${2}" = 'xfoo' ] + ;; + 2) + assert [ "x${1}" = 'xVersion' ] + assert [ "x${2}" = 'x1.0' ] + ;; + *) warn 'Too many fields'; tests_es=1;; + esac + ;; + 2) + case ${f} in + 1) + assert [ "x${1}" = 'xPackage' ] + assert [ "x${2}" = 'xbar' ] + ;; + 2) + assert [ "x${1}" = 'xVersion' ] + assert [ "x${2}" = 'x2.0' ] + ;; + *) warn 'Too many fields'; tests_es=1;; + esac + ;; + *) warn 'Too many paragraphs'; tests_es=1;; + esac + f=$(($f + 1)) +} +para() +{ + p=$(($p + 1)) + f=1 +} + +parse_control - field para 'Package Version' <<-EOF + Package: foo + Version: 1.0 + + Package: bar + Version: 2.0 + EOF |