Edit

thodg/libiconv/tests/check-stateless

Branch :

  • Show log

    Commit

  • Author : Bruno Haible
    Date : 2006-05-18 12:48:00
    Hash : 7edefe50
    Message : Implement newer releases of BIG5-HKSCS.

  • tests/check-stateless
  • #!/bin/sh
    # Complete check of a stateless encoding.
    # Usage: check-stateless SRCDIR CHARSET
    srcdir="$1"
    charset="$2"
    set -e
    
    # charset, modified for use in filenames.
    charsetf=`echo "$charset" | sed -e 's,:,-,g'`
    
    # iconv in one direction.
    ./table-from "$charset" > tmp-"$charsetf".TXT
    
    # iconv in the other direction.
    ./table-to "$charset" | sort > tmp-"$charsetf".INVERSE.TXT
    
    # Check 1: charmap and iconv forward should be identical.
    cmp "${srcdir}"/"$charsetf".TXT tmp-"$charsetf".TXT 2> /dev/null
    
    # Check 2: the difference between the charmap and iconv backward.
    sed -e '/	.* 0x/d' < "${srcdir}"/"$charsetf".TXT > tmp-noprecomposed-"$charsetf".TXT
    if test -f "${srcdir}"/"$charsetf".IRREVERSIBLE.TXT; then
      cat tmp-noprecomposed-"$charsetf".TXT "${srcdir}"/"$charsetf".IRREVERSIBLE.TXT | sort | uniq -u > tmp-orig-"$charsetf".INVERSE.TXT
    else
      cp tmp-noprecomposed-"$charsetf".TXT tmp-orig-"$charsetf".INVERSE.TXT
    fi
    cmp tmp-orig-"$charsetf".INVERSE.TXT tmp-"$charsetf".INVERSE.TXT 2> /dev/null
    
    rm -f tmp-"$charsetf".TXT tmp-"$charsetf".INVERSE.TXT tmp-noprecomposed-"$charsetf".TXT tmp-orig-"$charsetf".INVERSE.TXT
    exit 0
    # For a new encoding:
    # You can create the "$charsetf".TXT like this:
    #   ./table-from "$charset" > "$charsetf".TXT
    # You can create the "$charsetf".IRREVERSIBLE.TXT like this:
    #   ./table-to "$charset" | sort > "$charsetf".INVERSE.TXT
    #   diff "$charsetf".TXT "$charsetf".INVERSE.TXT | grep '^[<>]' | sed -e 's,^. ,,' > "$charsetf".IRREVERSIBLE.TXT