From d0b0e59952222c186120c91518ccf94862a86f64 Mon Sep 17 00:00:00 2001 From: Krutika Dhananjay Date: Tue, 27 Nov 2012 15:13:15 +0530 Subject: cli: cmd history echoes the last command string word twice with --mode=script PROBLEM: When a gluster command is executed with --mode=script option enabled, the last word in the command string is echoed twice in command history. Example: [2012-12-03 05:29:16.083176] : volume start dis dis : SUCCESS FIX: Terminate argv with NULL when the words are shifted after omitting "--mode=script" from it. Change-Id: I3a2623efe02e58c97c34554988938a9299425492 BUG: 823081 Signed-off-by: Krutika Dhananjay Reviewed-on: http://review.gluster.org/4255 Reviewed-by: Pranith Kumar Karampuri Tested-by: Gluster Build System Reviewed-by: Anand Avati --- cli/src/cli.c | 2 ++ tests/bugs/bug-823081.t | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 tests/bugs/bug-823081.t diff --git a/cli/src/cli.c b/cli/src/cli.c index 2b94df87..a2457c2b 100644 --- a/cli/src/cli.c +++ b/cli/src/cli.c @@ -382,6 +382,8 @@ parse_cmdline (int argc, char *argv[], struct cli_state *state) } } + state->argv[state->argc] = NULL; + return ret; } diff --git a/tests/bugs/bug-823081.t b/tests/bugs/bug-823081.t new file mode 100755 index 00000000..ce7d2e50 --- /dev/null +++ b/tests/bugs/bug-823081.t @@ -0,0 +1,38 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc + +cleanup; +V1=patchy2 + +TEST glusterd +TEST pidof glusterd + +logdir=`gluster --print-logdir` +function set_tail () +{ + vol=$1; + tail_success="volume create $vol $H0:$B0/${vol}1 $H0:$B0/${vol}2 : SUCCESS" + tail_failure="volume create $vol $H0:$B0/${vol}1 $H0:$B0/${vol}2 : FAILED : Volume $vol already exists" +} + +set_tail $V0; + +TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2}; +tail=`tail --lines=1 $logdir/.cmd_log_history | cut -d " " -f 5-` +TEST [[ \"$tail\" == \"$tail_success\" ]] + +TEST ! $CLI volume create $V0 $H0:$B0/${V0}{1,2}; +tail=`tail --lines=1 $logdir/.cmd_log_history | cut -d " " -f 5-` +TEST [[ \"$tail\" == \"$tail_failure\" ]] + +set_tail $V1; +TEST gluster volume create $V1 $H0:$B0/${V1}{1,2}; +tail=`tail --lines=1 $logdir/.cmd_log_history | cut -d " " -f 5-` +TEST [[ \"$tail\" == \"$tail_success\" ]] + +TEST ! gluster volume create $V1 $H0:$B0/${V1}{1,2}; +tail=`tail --lines=1 $logdir/.cmd_log_history | cut -d " " -f 5-` +TEST [[ \"$tail\" == \"$tail_failure\" ]] + +cleanup; -- cgit