#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test recognition of YCP format strings.

cat <<\EOF > f-y-1.data
# Valid: no argument
"abc%%def"
# Valid: one argument
"abc%1def"
# Valid: nine arguments
"abc%9def"
# Invalid: unterminated
"abc%%def%"
# Invalid: non-digit
"abc%%def%x"
# Invalid: zero
"abc%%def%0"
# Valid: permutation
"abc%2def%1"
# Valid: multiple uses of same argument
"abc%2def%1ghi%2"
EOF

: ${XGETTEXT=xgettext}
n=0
while read comment; do
  read string
  n=`expr $n + 1`
  cat <<EOF > f-y-1-$n.in
_(${string});
EOF
  ${XGETTEXT} -L YCP -o f-y-1-$n.po f-y-1-$n.in || Exit 1
  test -f f-y-1-$n.po || Exit 1
  fail=
  if echo "$comment" | grep 'Valid:' > /dev/null; then
    if grep ycp-format f-y-1-$n.po > /dev/null; then
      :
    else
      fail=yes
    fi
  else
    if grep ycp-format f-y-1-$n.po > /dev/null; then
      fail=yes
    else
      :
    fi
  fi
  if test -n "$fail"; then
    echo "Format string recognition error:" 1>&2
    cat f-y-1-$n.in 1>&2
    echo "Got:" 1>&2
    cat f-y-1-$n.po 1>&2
    Exit 1
  fi
  rm -f f-y-1-$n.in f-y-1-$n.po
done < f-y-1.data

Exit 0
