Yes, there should be a "^D" in each "echo " line. It seems that the terminal which I copied from doesn't support the special character.

2013/7/9 Hangbin Liu <liuhangbin@gmail.com>
2013/7/9 Xie Lingyun <lingyun.xie@bj.cs2c.com.cn>:
> If IPv6 is enabled, telnet ::1 will be tested. Otherwise, IPv4 only.
>
> Signed-off-by: Xie Lingyun <lingyun.xie@bj.cs2c.com.cn>
> ---
>  testcases/network/xinetd/xinetd_tests.sh | 90
> ++++++++++++++++++++++++++++----
>  1 file changed, 79 insertions(+), 11 deletions(-)
>
> diff --git a/testcases/network/xinetd/xinetd_tests.sh
> b/testcases/network/xinetd/xinetd_tests.sh
> index 83eb8a7..0fb6598 100755
> --- a/testcases/network/xinetd/xinetd_tests.sh
> +++ b/testcases/network/xinetd/xinetd_tests.sh
> @@ -84,12 +84,23 @@ init()
>           return $RC
>      fi
>
> + # sometimes the default telnet may be /usr/kerberos/bin/telnet
> + TELNET_COMM='/usr/bin/telnet'
> +
>      # check if commands tst_*, xinetd, awk exists.
>      chk_ifexists INIT tst_resm   || return $RC
>      chk_ifexists INIT xinetd     || return $RC
>      chk_ifexists INIT diff       || return $RC
> -    chk_ifexists INIT telnet     || return $RC
> -
> +    chk_ifexists INIT $TELNET_COMM     || return $RC
> +    chk_ifexists INIT ip || return $RC
> +
> +    IPV6_ENABLED=0
> +    ip a | grep inet6 > /dev/null 2>&1
> +    if [ $? -eq 0 ]
> +    then
> +     IPV6_ENABLED=1
> +    fi
> +
>   # Create custom xinetd.conf file.
>   # tst_xinetd.conf.1 config file has telnet service disabled.
>   cat > $LTPTMP/tst_xinetd.conf.1 <<-EOF || RC=$?
> @@ -128,7 +139,7 @@ init()
>
>      # Create expected file with telnet disabled.
>      cat > $LTPTMP/tst_xinetd.exp.1 <<-EOF || RC=$?
> - telnet: Unable to connect to remote host: Connection refused
> + telnet: connect to address 127.0.0.1: Connection refused
>   EOF
>
>      if [ $RC -ne 0 ]
> @@ -137,11 +148,25 @@ init()
>              "INIT: unable to create expected file $LTPTMP/tst_xinetd.exp.1"
>          return $RC
>      fi
> +
> +    if [ $IPV6_ENABLED -eq 1 ]
> +    then
> +     cat > $LTPTMP/tst_xinetd.exp.1.ipv6 <<-EOF || RC=$?
> + telnet: connect to address ::1: Connection refused
> + EOF
> +
> +     if [ $RC -ne 0 ]
> +   then
> +         tst_brkm TBROK  NULL \
> +             "INIT: unable to create expected file
> $LTPTMP/tst_xinetd.exp.1.ipv6"
> +         return $RC
> +     fi
> +    fi
>
>      # Create expected file with telnet enabled.
>   cat > $LTPTMP/tst_xinetd.exp.2 <<-EOF || RC=$?
>   Trying 127.0.0.1...
> - Connected to localhost (127.0.0.1).
> + Connected to 127.0.0.1.
>   Escape character is '^]'.
>   Connection closed by foreign host.
>   EOF
> @@ -149,10 +174,27 @@ init()
>      if [ $RC -ne 0 ]
>      then
>          tst_brkm TBROK  NULL \
> -            "INIT: unable to create expected file $LTPTMP/tst_xinetd.exp.1"
> +            "INIT: unable to create expected file $LTPTMP/tst_xinetd.exp.2"
>          return $RC
>      fi
>
> + if [ $IPV6_ENABLED -eq 1 ]
> +    then
> +     cat > $LTPTMP/tst_xinetd.exp.2.ipv6 <<-EOF || RC=$?
> + Trying ::1...
> + Connected to ::1.
> + Escape character is '^]'.
> + Connection closed by foreign host.
> + EOF
> +
> +     if [ $RC -ne 0 ]
> +     then
> +         tst_brkm TBROK  NULL \
> +             "INIT: unable to create expected file
> $LTPTMP/tst_xinetd.exp.2.ipv6"
> +         return $RC
> +     fi
> +    fi
> +
>      return $RC
>  }
>
> @@ -263,7 +305,7 @@ test01()
>
>   # Not checking for exit code from telnet command because telnet is
>   # not terminated by the test gracefully.
> - echo " " | telnet localhost 2>$LTPTMP/tst_xinetd.out 1>/dev/null
> + echo " " | $TELNET_COMM 127.0.0.1 2>$LTPTMP/tst_xinetd.out 1>/dev/null

Should there be a "^D" ? I can't see it here, does gmail support this
kind of special character ?

>   diff -iwB $LTPTMP/tst_xinetd.out  $LTPTMP/tst_xinetd.exp.1 \
>   > $LTPTMP/tst_xinetd.err 2>&1 || RC=$?
>      if [ $RC -ne 0 ]
> @@ -272,7 +314,20 @@ test01()
>              "Test #1: with telnet diabled expected out differs RC=$RC.
> Details:"
>          return $RC
>      fi
> -
> +
> +    if [ $IPV6_ENABLED -eq 1 ]
> +    then
> +     echo " " | $TELNET_COMM ::1 2>$LTPTMP/tst_xinetd.out.ipv6 1>/dev/null

Also here and other echo lines.

> + diff -iwB $LTPTMP/tst_xinetd.out.ipv6  $LTPTMP/tst_xinetd.exp.1.ipv6 \
> + > $LTPTMP/tst_xinetd.err.ipv6 2>&1 || RC=$?
> +     if [ $RC -ne 0 ]
> +     then
> +         tst_res TFAIL $LTPTMP/tst_xinetd.err.ipv6 \
> +             "Test #1: with telnet diabled of IPv6 expected out differs
> RC=$RC. Details:"
> +         return $RC
> +     fi
> +    fi
> +
>      tst_resm TINFO "Test #1: restart xinetd with telnet enabled."
>   # install the xinetd config file with telnet enabled.
>   mv $LTPTMP/tst_xinetd.conf.2 /etc/xinetd.conf > $LTPTMP/tst_xinetd.err
> 2>&1 \
> @@ -312,7 +367,7 @@ test01()
>
>   # Not checking for exit code from telnet command because telnet is
>   # not terminated by the test gracefully.
> - echo " " | telnet localhost > $LTPTMP/tst_xinetd.out 2>&1
> + echo " " | $TELNET_COMM 127.0.0.1 > $LTPTMP/tst_xinetd.out 2>&1
>
>   diff -iwB $LTPTMP/tst_xinetd.out  $LTPTMP/tst_xinetd.exp.2 \
>   > $LTPTMP/tst_xinetd.err 2>&1 || RC=$?
> @@ -321,11 +376,24 @@ test01()
>          tst_res TFAIL $LTPTMP/tst_xinetd.err \
>              "Test #1: expected output differes from actual. Details:"
>          return $RC
> - else
> - tst_resm TPASS \
> - "Test #1: xinetd reads the config file and starts or stops services."
>      fi
>
> + if [ $IPV6_ENABLED -eq 1 ]
> +    then
> +     echo " " | $TELNET_COMM ::1 > $LTPTMP/tst_xinetd.out.ipv6 2>&1
> +
> + diff -iwB $LTPTMP/tst_xinetd.out.ipv6  $LTPTMP/tst_xinetd.exp.2.ipv6 \
> + > $LTPTMP/tst_xinetd.err.ipv6 2>&1 || RC=$?
> +     if [ $RC -ne 0 ]
> +     then
> +         tst_res TFAIL $LTPTMP/tst_xinetd.err.ipv6 \
> +             "Test #1: expected output differes from actual. Details:"
> +         return $RC
> +     fi
> +    fi
> +
> + tst_resm TPASS \
> + "Test #1: xinetd reads the config file and starts or stops services."

This will PASS the test anyway. The previous test only pass when $RC eq 0.
In fact, if $RC -ne 0, the script should exit before this line. So I simply move this line from if statement to here.
 

>      return $RC
>  }
>
> --
> 1.8.3.1
>
>
>
> Thanks,
> Lingyun Xie


Regards
Hangbin Liu



Thanks,
Lingyun Xie