psss / rpms / libsemanage

Forked from rpms/libsemanage 5 years ago
Clone
cefaa03
#include <stdio.h>
cefaa03
#include <stdlib.h>
cefaa03
#include <string.h>
cefaa03
#include <errno.h>
cefaa03
#include <semanage/semanage.h>
cefaa03
cefaa03
#include "functions.c"
cefaa03
cefaa03
int main (int argc, char **argv) {
cefaa03
    semanage_handle_t *sh;
cefaa03
    semanage_seuser_t *seuser;
cefaa03
    semanage_seuser_t *seuser2;
cefaa03
    int result;
cefaa03
    int first = -1;
cefaa03
    int second = -1;
cefaa03
    
cefaa03
    if (argc < 4)
cefaa03
        exit(2);
cefaa03
    
cefaa03
    sh = get_handle(argv[1]);
cefaa03
cefaa03
    if (strcmp(argv[2], "NULL") == 0) {
cefaa03
        seuser = NULL;
cefaa03
    }
cefaa03
    else {
cefaa03
        first = strtol(argv[2], NULL, 10);
cefaa03
        seuser = test_get_seuser_nth(sh, first);
cefaa03
    }
cefaa03
cefaa03
    if (strcmp(argv[3], "NULL") == 0) {
cefaa03
        seuser2 = NULL;
cefaa03
    }
cefaa03
    else {
cefaa03
        second = strtol(argv[3], NULL, 10);
cefaa03
        seuser2 = test_get_seuser_nth(sh, second);
cefaa03
    }
cefaa03
cefaa03
    result = semanage_seuser_compare2(seuser, seuser2);
cefaa03
    printf("semanage_seuser_compare(%p, %p): %d\n",
cefaa03
           (void *) seuser, (void *) seuser2, result);
cefaa03
cefaa03
    if (first == second && result != 0) {
cefaa03
        fprintf(stderr, "Expected same but got different\n");
cefaa03
        exit(1);
cefaa03
    }
cefaa03
    else if (first != second && result == 0) {
cefaa03
        fprintf(stderr, "Expected different but got same\n");
cefaa03
        exit(1);
cefaa03
    }
cefaa03
cefaa03
    destroy_handle(sh, argv[1]);
cefaa03
cefaa03
    exit(0);
cefaa03
}