logging/vty: fix: actually ignore deprecated logging commands

We shall not prevent programs from starting if their configuration
files contain deprecated 'logging level ...' commands. Just print
a warning and return CMD_SUCCESS instead of CMD_WARNING.

While writing a unit test, another funny bug has been uncovered.
Parsing of a deprecated command indeed triggers a deprecation
warning, originated from libosmovty's log_deprecated_func().
This function simply calls vty_out(), but...

Since the invocation of the vty_out() happens _before_ the VTY
is initialized, the process is actually writing that warning
to its own stdin! Most likely, because we use talloc_zero()
to allocate a new instance of struct 'vty'.

As a side effect, the evil warning magically appears in the output
of 'make check', breaking the test statistics. Let's work around
this bug for now by redirecting stdin to /dev/null.

Change-Id: Ia934581410cd41594791d4e14ee74c16abe1009a
Fixes: Ic9c1b566ec4a459f03e6319cf369691903cf9d00
diff --git a/tests/vty/vty_test.c b/tests/vty/vty_test.c
index 0d68a6c..1139638 100644
--- a/tests/vty/vty_test.c
+++ b/tests/vty/vty_test.c
@@ -29,6 +29,7 @@
 
 #include <osmocom/core/application.h>
 #include <osmocom/core/talloc.h>
+#include <osmocom/core/logging_internal.h>
 #include <osmocom/core/logging.h>
 #include <osmocom/core/stats.h>
 #include <osmocom/core/utils.h>
@@ -442,6 +443,8 @@
 	install_element(CONFIG_NODE, &cfg_ret_warning_cmd);
 	install_element(CONFIG_NODE, &cfg_ret_success_cmd);
 
+	logging_vty_add_deprecated_subsys(tall_log_ctx, "depr");
+
 	install_element(CONFIG_NODE, &cfg_level1_cmd);
 	install_node(&level1_node, NULL);
 	install_element(LEVEL1_NODE, &cfg_level1_child_cmd);
@@ -544,6 +547,7 @@
 	test_exit_by_indent("ok_indented_root.cfg", 0);
 	test_exit_by_indent("ok_empty_parent.cfg", 0);
 	test_exit_by_indent("fail_cmd_ret_warning.cfg", -EINVAL);
+	test_exit_by_indent("ok_deprecated_logging.cfg", 0);
 
 	test_is_cmd_ambiguous();