1#include <assert.h>2#include <ctype.h>3#include <string.h>4#include <stdio.h>56#include "busybox.h"7#include "util-linux.h"89#include <klee/klee.h>1011int12main(int argc, char **argv)13{14 char options[8];15 char pattern[8];1617 klee_make_symbolic(&options, sizeof(options), "options");18 for (int i = 0; i < sizeof(options) - 1; i++)19 klee_assume(isalpha(options[i]) || options[i] == ',' || options[i] == '+');20 klee_assume(options[sizeof(options) - 1] == '\0');2122 klee_make_symbolic(&pattern, sizeof(pattern), "pattern");23 for (int i = 0; i < sizeof(pattern) - 1; i++)24 klee_assume(isalpha(pattern[i]) || pattern[i] == ',' || pattern[i] == '+');25 klee_assume(pattern[sizeof(pattern) - 1] == '\0');2627#if 028 printf("options: %s\n", options);29 printf("pattern: %s\n", pattern);30#endif3132 assert(mnt_match_options(options, pattern) == fsopts_matches(options, pattern));33 return 0;34}