From 23b0cdad8a32a58e0019b1e502a79168394d45f1 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Thu, 13 Jan 2022 17:10:00 +0100 Subject: [PATCH] vfs: add test for errno value after 'open' --- components/vfs/test/test_vfs_open.c | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 components/vfs/test/test_vfs_open.c diff --git a/components/vfs/test/test_vfs_open.c b/components/vfs/test/test_vfs_open.c new file mode 100644 index 0000000000..4db1a386ba --- /dev/null +++ b/components/vfs/test/test_vfs_open.c @@ -0,0 +1,38 @@ +/* + * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include "esp_vfs.h" +#include "unity.h" + +static int open_errno_test_open(const char * path, int flags, int mode) +{ + errno = EIO; + return -1; +} + +TEST_CASE("esp_vfs_open sets correct errno", "[vfs]") +{ + esp_vfs_t desc = { + .open = open_errno_test_open + }; + TEST_ESP_OK(esp_vfs_register("/test", &desc, NULL)); + + int fd = open("/test/path", 0, 0); + int e = errno; + TEST_ASSERT_EQUAL(-1, fd); + TEST_ASSERT_EQUAL(EIO, e); + + fd = open("/nonexistent/path", 0, 0); + e = errno; + TEST_ASSERT_EQUAL(-1, fd); + TEST_ASSERT_EQUAL(ENOENT, e); + + TEST_ESP_OK(esp_vfs_unregister("/test")); +}