goto finish;
skipped:
- if (keyname)
- (void) add_to_keyring_and_log(keyname, flags, l);
-
- *ret = TAKE_PTR(l);
- r = 0;
+ if (strv_isempty(l))
+ r = log_debug_errno(SYNTHETIC_ERRNO(ECANCELED), "Password query was cancelled.");
+ else {
+ if (keyname)
+ (void) add_to_keyring_and_log(keyname, flags, l);
+
+ *ret = TAKE_PTR(l);
+ r = 0;
+ }
finish:
if (ttyfd >= 0 && reset_tty) {
/* SPDX-License-Identifier: LGPL-2.1+ */
-#include "alloc-util.h"
#include "ask-password-api.h"
-#include "log.h"
#include "strv.h"
+#include "tests.h"
-static void ask_password(void) {
+static void test_ask_password(void) {
int r;
_cleanup_strv_free_ char **ret = NULL;
r = ask_password_tty(-1, "hello?", "da key", 0, 0, NULL, &ret);
- assert(r >= 0);
- assert(strv_length(ret) == 1);
-
- log_info("Got %s", *ret);
+ if (r == -ECANCELED)
+ assert_se(ret == NULL);
+ else {
+ assert_se(r >= 0);
+ assert_se(strv_length(ret) == 1);
+ log_info("Got \"%s\"", *ret);
+ }
}
int main(int argc, char **argv) {
- log_parse_environment();
+ test_setup_logging(LOG_DEBUG);
- ask_password();
+ test_ask_password();
return EXIT_SUCCESS;
}