+int parser_stat_path(struct discover_context *ctx,
+ struct discover_device *dev, const char *path,
+ struct stat *statbuf)
+{
+ struct parser_test *test = ctx->test_data;
+ struct test_file *file;
+
+ list_for_each_entry(&test->files, file, list) {
+ if (file->dev != dev)
+ continue;
+ if (strcmp(file->name, path))
+ continue;
+
+ statbuf->st_size = (off_t)file->size;
+ switch (file->type) {
+ case TEST_FILE:
+ statbuf->st_mode = S_IFREG;
+ break;
+ case TEST_DIR:
+ statbuf->st_mode = S_IFDIR;
+ break;
+ default:
+ fprintf(stderr, "%s: bad test file mode %d!", __func__,
+ file->type);
+ exit(EXIT_FAILURE);
+ }
+
+ return 0;
+ }
+
+ return -1;
+}
+