This command should be exposed to other shells of ours.
They are gonna need it as soon as we want to test them too.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
tools/virsh.c | 45 +--------------------------------------------
tools/vsh.c | 38 ++++++++++++++++++++++++++++++++++++++
tools/vsh.h | 11 +++++++++++
3 files changed, 50 insertions(+), 44 deletions(-)
diff --git a/tools/virsh.c b/tools/virsh.c
index cb60edc..1068447 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -346,44 +346,6 @@ virshConnectionHandler(vshControl *ctl)
return NULL;
}
-/* -----------------
- * Command self-test
- * ----------------- */
-
-static const vshCmdInfo info_selftest[] = {
- {.name = "help",
- .data = N_("internal command for testing virsh")
- },
- {.name = "desc",
- .data = N_("internal use only")
- },
- {.name = NULL}
-};
-
-/* Prints help for every command.
- * That runs vshCmddefOptParse which validates
- * the per-command options structure. */
-static bool
-cmdSelfTest(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
-{
- const vshCmdGrp *grp;
- const vshCmdDef *def;
-
- vshPrint(ctl, "Do not use the following output:\n\n");
-
- for (grp = cmdGroups; grp->name; grp++) {
- for (def = grp->commands; def->name; def++) {
- if (def->flags & VSH_CMD_FLAG_ALIAS)
- continue;
-
- if (!vshCmddefHelp(ctl, def->name))
- return false;
- }
- }
-
- return true;
-}
-
/* ---------------
* Misc utils
@@ -894,18 +856,13 @@ static const vshCmdDef virshCmds[] = {
VSH_CMD_HELP,
VSH_CMD_PWD,
VSH_CMD_QUIT,
+ VSH_CMD_SELF_TEST,
{.name = "connect",
.handler = cmdConnect,
.opts = opts_connect,
.info = info_connect,
.flags = VSH_CMD_FLAG_NOCONNECT
},
- {.name = "self-test",
- .handler = cmdSelfTest,
- .opts = NULL,
- .info = info_selftest,
- .flags = VSH_CMD_FLAG_NOCONNECT | VSH_CMD_FLAG_ALIAS
- },
{.name = NULL}
};
diff --git a/tools/vsh.c b/tools/vsh.c
index be6a073..c51bdd7 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -3328,3 +3328,41 @@ cmdQuit(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
ctl->imode = false;
return true;
}
+
+/* -----------------
+ * Command self-test
+ * ----------------- */
+
+const vshCmdInfo info_selftest[] = {
+ {.name = "help",
+ .data = N_("internal command for testing virsh")
+ },
+ {.name = "desc",
+ .data = N_("internal use only")
+ },
+ {.name = NULL}
+};
+
+/* Prints help for every command.
+ * That runs vshCmddefOptParse which validates
+ * the per-command options structure. */
+bool
+cmdSelfTest(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
+{
+ const vshCmdGrp *grp;
+ const vshCmdDef *def;
+
+ vshPrint(ctl, "Do not use the following output:\n\n");
+
+ for (grp = cmdGroups; grp->name; grp++) {
+ for (def = grp->commands; def->name; def++) {
+ if (def->flags & VSH_CMD_FLAG_ALIAS)
+ continue;
+
+ if (!vshCmddefHelp(ctl, def->name))
+ return false;
+ }
+ }
+
+ return true;
+}
diff --git a/tools/vsh.h b/tools/vsh.h
index e53910f..7f08191 100644
--- a/tools/vsh.h
+++ b/tools/vsh.h
@@ -376,12 +376,14 @@ extern const vshCmdOptDef opts_echo[];
extern const vshCmdInfo info_echo[];
extern const vshCmdInfo info_pwd[];
extern const vshCmdInfo info_quit[];
+extern const vshCmdInfo info_selftest[];
bool cmdHelp(vshControl *ctl, const vshCmd *cmd);
bool cmdCd(vshControl *ctl, const vshCmd *cmd);
bool cmdEcho(vshControl *ctl, const vshCmd *cmd);
bool cmdPwd(vshControl *ctl, const vshCmd *cmd);
bool cmdQuit(vshControl *ctl, const vshCmd *cmd);
+bool cmdSelfTest(vshControl *ctl, const vshCmd *cmd);
# define VSH_CMD_CD \
{ \
@@ -437,6 +439,15 @@ bool cmdQuit(vshControl *ctl, const vshCmd *cmd);
.flags = VSH_CMD_FLAG_NOCONNECT \
}
+# define VSH_CMD_SELF_TEST \
+ { \
+ .name = "self-test", \
+ .handler = cmdSelfTest, \
+ .opts = NULL, \
+ .info = info_selftest, \
+ .flags = VSH_CMD_FLAG_NOCONNECT | VSH_CMD_FLAG_ALIAS \
+ }
+
/* readline */
char * vshReadline(vshControl *ctl, const char *prompt);
--
2.8.4