@@ -20,7 +20,6 @@ test_cryptodev_deps = ['bus_vdev', 'net', 'cryptodev', 'security']
source_file_deps = {
# The C files providing functionality to other test cases
'packet_burst_generator.c': packet_burst_generator_deps,
-# 'resource.c': [], # unused currently.
'sample_packet_forward.c': sample_packet_forward_deps,
'virtual_pmd.c': virtual_pmd_deps,
@@ -154,7 +153,6 @@ source_file_deps = {
'test_reciprocal_division_perf.c': [],
'test_red.c': ['sched'],
'test_reorder.c': ['reorder'],
-# 'test_resource.c': [],
'test_rib.c': ['net', 'rib'],
'test_rib6.c': ['net', 'rib'],
'test_ring.c': ['ptr_compress'],
deleted file mode 100644
@@ -1,276 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2016 RehiveTech. All rights reserved.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/queue.h>
-
-#include <rte_debug.h>
-
-#include "resource.h"
-
-struct resource_list resource_list = TAILQ_HEAD_INITIALIZER(resource_list);
-
-size_t resource_size(const struct resource *r)
-{
- return r->end - r->begin;
-}
-
-const struct resource *resource_find(const char *name)
-{
- struct resource *r;
-
- TAILQ_FOREACH(r, &resource_list, next) {
- RTE_VERIFY(r->name);
-
- if (!strcmp(r->name, name))
- return r;
- }
-
- return NULL;
-}
-
-int resource_fwrite(const struct resource *r, FILE *f)
-{
- const size_t goal = resource_size(r);
- size_t total = 0;
-
- while (total < goal) {
- size_t wlen = fwrite(r->begin + total, 1, goal - total, f);
- if (wlen == 0) {
- perror(__func__);
- return -1;
- }
-
- total += wlen;
- }
-
- return 0;
-}
-
-int resource_fwrite_file(const struct resource *r, const char *fname)
-{
- FILE *f;
- int ret;
-
- f = fopen(fname, "w");
- if (f == NULL) {
- perror(__func__);
- return -1;
- }
-
- ret = resource_fwrite(r, f);
- fclose(f);
- return ret;
-}
-
-#ifdef RTE_APP_TEST_RESOURCE_TAR
-#include <archive.h>
-#include <archive_entry.h>
-
-static int do_copy(struct archive *r, struct archive *w)
-{
- const void *buf;
- size_t len;
-#if ARCHIVE_VERSION_NUMBER >= 3000000
- int64_t off;
-#else
- off_t off;
-#endif
- int ret;
-
- while (1) {
- ret = archive_read_data_block(r, &buf, &len, &off);
- if (ret == ARCHIVE_RETRY)
- continue;
-
- if (ret == ARCHIVE_EOF)
- return 0;
-
- if (ret != ARCHIVE_OK)
- return ret;
-
- do {
- ret = archive_write_data_block(w, buf, len, off);
- if (ret != ARCHIVE_OK && ret != ARCHIVE_RETRY)
- return ret;
- } while (ret != ARCHIVE_OK);
- }
-}
-
-int resource_untar(const struct resource *res)
-{
- struct archive *r;
- struct archive *w;
- struct archive_entry *e;
- void *p;
- int flags = 0;
- int ret;
-
- p = malloc(resource_size(res));
- if (p == NULL)
- rte_panic("Failed to malloc %zu B\n", resource_size(res));
-
- memcpy(p, res->begin, resource_size(res));
-
- r = archive_read_new();
- if (r == NULL) {
- free(p);
- return -1;
- }
-
- archive_read_support_format_all(r);
- archive_read_support_filter_all(r);
-
- w = archive_write_disk_new();
- if (w == NULL) {
- archive_read_free(r);
- free(p);
- return -1;
- }
-
- flags |= ARCHIVE_EXTRACT_PERM;
- flags |= ARCHIVE_EXTRACT_FFLAGS;
- archive_write_disk_set_options(w, flags);
- archive_write_disk_set_standard_lookup(w);
-
- ret = archive_read_open_memory(r, p, resource_size(res));
- if (ret != ARCHIVE_OK)
- goto fail;
-
- while (1) {
- ret = archive_read_next_header(r, &e);
- if (ret == ARCHIVE_EOF)
- break;
- if (ret != ARCHIVE_OK)
- goto fail;
-
- ret = archive_write_header(w, e);
- if (ret == ARCHIVE_EOF)
- break;
- if (ret != ARCHIVE_OK)
- goto fail;
-
- if (archive_entry_size(e) == 0)
- continue;
-
- ret = do_copy(r, w);
- if (ret != ARCHIVE_OK)
- goto fail;
-
- ret = archive_write_finish_entry(w);
- if (ret != ARCHIVE_OK)
- goto fail;
- }
-
- archive_write_free(w);
- archive_read_free(r);
- free(p);
- return 0;
-
-fail:
- archive_write_free(w);
- archive_read_free(r);
- free(p);
- rte_panic("Failed: %s\n", archive_error_string(r));
- return -1;
-}
-
-int resource_rm_by_tar(const struct resource *res)
-{
- struct archive *r;
- struct archive_entry *e;
- void *p;
- int try_again = 1;
- int attempts = 0;
- int ret;
-
- p = malloc(resource_size(res));
- if (p == NULL)
- rte_panic("Failed to malloc %zu B\n", resource_size(res));
-
- memcpy(p, res->begin, resource_size(res));
-
- /*
- * If somebody creates a file somewhere inside the extracted TAR
- * hierarchy during a test the resource_rm_by_tar might loop
- * infinitely. We prevent this by adding the attempts counter there.
- * In normal case, max N iteration is done where N is the depth of
- * the file-hierarchy.
- */
- while (try_again && attempts < 10000) {
- r = archive_read_new();
- if (r == NULL) {
- free(p);
- return -1;
- }
-
- archive_read_support_format_all(r);
- archive_read_support_filter_all(r);
-
- ret = archive_read_open_memory(r, p, resource_size(res));
- if (ret != ARCHIVE_OK) {
- fprintf(stderr, "Failed: %s\n",
- archive_error_string(r));
- goto fail;
- }
-
- try_again = 0;
-
- while (1) {
- ret = archive_read_next_header(r, &e);
- if (ret == ARCHIVE_EOF)
- break;
- if (ret != ARCHIVE_OK)
- goto fail;
-
- ret = remove(archive_entry_pathname(e));
- if (ret < 0) {
- switch (errno) {
- case ENOTEMPTY:
- case EEXIST:
- try_again = 1;
- break;
-
- /* should not usually happen: */
- case ENOENT:
- case ENOTDIR:
- case EROFS:
- attempts += 1;
- continue;
- default:
- perror("Failed to remove file");
- goto fail;
- }
- }
- }
-
- archive_read_free(r);
- attempts += 1;
- }
-
- if (attempts >= 10000) {
- fprintf(stderr, "Failed to remove archive\n");
- free(p);
- return -1;
- }
-
- free(p);
- return 0;
-
-fail:
- archive_read_free(r);
- free(p);
-
- rte_panic("Failed: %s\n", archive_error_string(r));
- return -1;
-}
-
-#endif /* RTE_APP_TEST_RESOURCE_TAR */
-
-void resource_register(struct resource *r)
-{
- TAILQ_INSERT_TAIL(&resource_list, r, next);
-}
deleted file mode 100644
@@ -1,106 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2016 RehiveTech. All rights reserved.
- */
-
-#ifndef _RESOURCE_H_
-#define _RESOURCE_H_
-
-/**
- * @file
- *
- * Test Resource API
- *
- * Each test can require and use some external resources. Usually, an external
- * resource is a file or a filesystem sub-hierarchy. A resource is included
- * inside the test executable.
- */
-
-#include <sys/queue.h>
-#include <stdio.h>
-#include <stddef.h>
-
-#include <rte_eal.h>
-#include <rte_common.h>
-
-TAILQ_HEAD(resource_list, resource);
-extern struct resource_list resource_list;
-
-/**
- * Representation of a resource. It points to the resource's binary data.
- * The semantics of the binary data are defined by the target test.
- */
-struct resource {
- const char *name; /**< Unique name of the resource */
- const char *begin; /**< Start of resource data */
- const char *end; /**< End of resource data */
- TAILQ_ENTRY(resource) next;
-};
-
-/**
- * @return size of the given resource
- */
-size_t resource_size(const struct resource *r);
-
-/**
- * Find a resource by name in the global list of resources.
- */
-const struct resource *resource_find(const char *name);
-
-/**
- * Write the raw data of the resource to the given file.
- * @return 0 on success
- */
-int resource_fwrite(const struct resource *r, FILE *f);
-
-/**
- * Write the raw data of the resource to the given file given by name.
- * The name is relative to the current working directory.
- * @return 0 on success
- */
-int resource_fwrite_file(const struct resource *r, const char *fname);
-
-/**
- * Treat the given resource as a tar archive. Extract
- * the archive to the current directory.
- */
-int resource_untar(const struct resource *res);
-
-/**
- * Treat the given resource as a tar archive. Remove
- * all files (related to the current directory) listed
- * in the tar archive.
- */
-int resource_rm_by_tar(const struct resource *res);
-
-/**
- * Register a resource in the global list of resources.
- * Not intended for direct use, please check the REGISTER_RESOURCE
- * macro.
- */
-void resource_register(struct resource *r);
-
-/**
- * Definition of a resource linked externally (by means of the used toolchain).
- * Only the base name of the resource is expected. The name refers to the
- * linked pointers beg_<name> and end_<name> provided externally.
- */
-#define REGISTER_LINKED_RESOURCE(n) \
-extern const char beg_ ##n; \
-extern const char end_ ##n; \
-REGISTER_RESOURCE(n, &beg_ ##n, &end_ ##n) \
-
-/**
- * Definition of a resource described by its name, and pointers begin, end.
- */
-#define REGISTER_RESOURCE(n, b, e) \
-static struct resource linkres_ ##n = { \
- .name = RTE_STR(n), \
- .begin = b, \
- .end = e, \
-}; \
-RTE_INIT(resinitfn_ ##n) \
-{ \
- resource_register(&linkres_ ##n); \
-}
-
-#endif
deleted file mode 100644
@@ -1,104 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2016 RehiveTech. All rights reserved.
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include "test.h"
-#include "resource.h"
-
-const char test_resource_dpdk_blob[] = {
- '\x44', '\x50', '\x44', '\x4b', '\x00'
-};
-
-REGISTER_RESOURCE(test_resource_dpdk,
- test_resource_dpdk_blob, test_resource_dpdk_blob + 4);
-
-static int test_resource_dpdk(void)
-{
- const struct resource *r;
-
- r = resource_find("test_resource_dpdk");
- TEST_ASSERT_NOT_NULL(r, "Could not find test_resource_dpdk");
- TEST_ASSERT(!strcmp(r->name, "test_resource_dpdk"),
- "Found resource %s, expected test_resource_dpdk",
- r->name);
-
- TEST_ASSERT(!strncmp("DPDK", r->begin, 4),
- "Unexpected payload: %.4s...", r->begin);
-
- return 0;
-}
-
-REGISTER_LINKED_RESOURCE(test_resource_c);
-
-static int test_resource_c(void)
-{
- const struct resource *r;
- FILE *f;
-
- r = resource_find("test_resource_c");
- TEST_ASSERT_NOT_NULL(r, "No test_resource_c found");
- TEST_ASSERT(!strcmp(r->name, "test_resource_c"),
- "Found resource %s, expected test_resource_c",
- r->name);
-
- TEST_ASSERT_SUCCESS(resource_fwrite_file(r, "test_resource.c"),
- "Failed to write file %s", r->name);
-
- f = fopen("test_resource.c", "r");
- TEST_ASSERT_NOT_NULL(f,
- "Missing extracted file resource.c");
- fclose(f);
- remove("test_resource.c");
-
- return 0;
-}
-
-#ifdef RTE_APP_TEST_RESOURCE_TAR
-REGISTER_LINKED_RESOURCE(test_resource_tar);
-
-static int test_resource_tar(void)
-{
- const struct resource *r;
- FILE *f;
-
- r = resource_find("test_resource_tar");
- TEST_ASSERT_NOT_NULL(r, "No test_resource_tar found");
- TEST_ASSERT(!strcmp(r->name, "test_resource_tar"),
- "Found resource %s, expected test_resource_tar",
- r->name);
-
- TEST_ASSERT_SUCCESS(resource_untar(r),
- "Failed to to untar %s", r->name);
-
- f = fopen("test_resource.c", "r");
- TEST_ASSERT_NOT_NULL(f,
- "Missing extracted file test_resource.c");
- fclose(f);
-
- TEST_ASSERT_SUCCESS(resource_rm_by_tar(r),
- "Failed to remove extracted contents of %s", r->name);
- return 0;
-}
-
-#endif /* RTE_APP_TEST_RESOURCE_TAR */
-
-static int test_resource(void)
-{
- if (test_resource_dpdk())
- return -1;
-
- if (test_resource_c())
- return -1;
-
-#ifdef RTE_APP_TEST_RESOURCE_TAR
- if (test_resource_tar())
- return -1;
-#endif /* RTE_APP_TEST_RESOURCE_TAR */
-
- return 0;
-}
-
-REGISTER_TEST_COMMAND(resource_autotest, test_resource);