X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest-login.c;h=7d6f08202d91821d2643adb618e2a7034e6e124a;hb=7dfe96eebc1cde5d6b23d7879087ea9102943d7d;hp=21cd3a190029fe8f0bed150f3374420cf8f8c4d9;hpb=034a2a52ac0ec83e0229941d635d310b23eb04df;p=elogind.git diff --git a/src/test-login.c b/src/test-login.c index 21cd3a190..7d6f08202 100644 --- a/src/test-login.c +++ b/src/test-login.c @@ -48,18 +48,24 @@ int main(int argc, char* argv[]) { r = sd_uid_get_sessions(u2, false, &sessions); assert_se(r >= 0); + assert_se(r == (int) strv_length(sessions)); assert_se(t = strv_join(sessions, ", ")); strv_free(sessions); printf("sessions = %s\n", t); free(t); + assert_se(r == sd_uid_get_sessions(u2, false, NULL)); + r = sd_uid_get_seats(u2, false, &seats); assert_se(r >= 0); + assert_se(r == (int) strv_length(seats)); assert_se(t = strv_join(seats, ", ")); strv_free(seats); printf("seats = %s\n", t); free(t); + assert_se(r == sd_uid_get_seats(u2, false, NULL)); + r = sd_session_is_active(session); assert_se(r >= 0); printf("active = %s\n", yes_no(r)); @@ -71,6 +77,10 @@ int main(int argc, char* argv[]) { assert_se(sd_session_get_seat(session, &seat) >= 0); printf("seat = %s\n", seat); + r = sd_seat_can_multi_session(seat); + assert_se(r >= 0); + printf("can do multi session = %s\n", yes_no(r)); + assert_se(sd_uid_get_state(u, &state) >= 0); printf("state = %s\n", state); @@ -84,7 +94,10 @@ int main(int argc, char* argv[]) { printf("session2 = %s\n", session2); printf("uid2 = %lu\n", (unsigned long) u2); - assert_se(sd_seat_get_sessions(seat, &sessions, &uids, &n) >= 0); + r = sd_seat_get_sessions(seat, &sessions, &uids, &n); + assert_se(r >= 0); + printf("n_sessions = %i\n", r); + assert_se(r == (int) strv_length(sessions)); assert_se(t = strv_join(sessions, ", ")); strv_free(sessions); printf("sessions = %s\n", t); @@ -95,23 +108,35 @@ int main(int argc, char* argv[]) { printf("\n"); free(uids); + assert_se(sd_seat_get_sessions(seat, NULL, NULL, NULL) == r); + free(session); free(state); free(session2); free(seat); - assert_se(sd_get_seats(&seats) >= 0); + r = sd_get_seats(&seats); + assert_se(r >= 0); + assert_se(r == (int) strv_length(seats)); assert_se(t = strv_join(seats, ", ")); strv_free(seats); + printf("n_seats = %i\n", r); printf("seats = %s\n", t); free(t); - assert_se(sd_get_sessions(&sessions) >= 0); + assert_se(sd_get_seats(NULL) == r); + + r = sd_get_sessions(&sessions); + assert_se(r >= 0); + assert_se(r == (int) strv_length(sessions)); assert_se(t = strv_join(sessions, ", ")); strv_free(sessions); + printf("n_sessions = %i\n", r); printf("sessions = %s\n", t); free(t); + assert_se(sd_get_sessions(NULL) == r); + r = sd_get_uids(&uids); assert_se(r >= 0); @@ -119,9 +144,11 @@ int main(int argc, char* argv[]) { for (k = 0; k < r; k++) printf(" %lu", (unsigned long) uids[k]); printf("\n"); - free(uids); + printf("n_uids = %i\n", r); + assert_se(sd_get_uids(NULL) == r); + r = sd_login_monitor_new("session", &m); assert_se(r >= 0);