From a9a891da7b64eda13e2f28264522d185f0a62574 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Fri, 15 Aug 2014 22:24:13 -0400 Subject: tests/parse_control.sh: New test --- diff --git a/tests/local.mk b/tests/local.mk index d938299..fffbe32 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -1 +1,2 @@ -TESTS = +TESTS = \ + tests/parse_control.sh 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 . + +. 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 -- cgit v0.9.1