]> granicus.if.org Git - esp-idf/commitdiff
Fix VFS_OPEN_WRITE_CLOSE_TIME unit test issue
authorRoland Dobai <dobai.roland@gmail.com>
Fri, 23 Nov 2018 07:07:59 +0000 (08:07 +0100)
committerRoland Dobai <dobai.roland@gmail.com>
Wed, 28 Nov 2018 19:36:08 +0000 (20:36 +0100)
Closes idf/esp-idf#44

components/idf_test/include/idf_performance.h
components/vfs/test/CMakeLists.txt
components/vfs/test/component.mk
components/vfs/test/linker.lf [new file with mode: 0644]
components/vfs/test/test_vfs_fd.c

index 3e7c841d716202ff73ece898ade64caed7f284e3..0ba430e761fd736613c4f8e73f398cc6a384fad3 100644 (file)
@@ -12,8 +12,8 @@
 #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_POLLING_NO_DMA                        15
 /* Due to code size & linker layout differences interacting with cache, VFS
    microbenchmark currently runs slower with PSRAM enabled. */
-#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME                           50000
-#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME_PSRAM                     40000
+#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME                           20000
+#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME_PSRAM                     25000
 // throughput performance by iperf
 #define IDF_PERFORMANCE_MIN_TCP_RX_THROUGHPUT                                   50
 #define IDF_PERFORMANCE_MIN_TCP_TX_THROUGHPUT                                   40
index b3a7073329f9d6ef96344821085506d181e0bb37..e67c253d0f3209a809a9ca25dcc40769fb21a85d 100644 (file)
@@ -3,4 +3,6 @@ set(COMPONENT_ADD_INCLUDEDIRS ".")
 
 set(COMPONENT_REQUIRES unity test_utils vfs fatfs spiffs)
 
-register_component()
\ No newline at end of file
+set(COMPONENT_ADD_LDFRAGMENTS linker.lf)
+
+register_component()
index ce464a212a6ae8526bdd5fc5178740b99f524935..5650ced1ee649f2282a71ac8a5d5b48af1e4eeb5 100644 (file)
@@ -1 +1,3 @@
 COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive
+
+COMPONENT_ADD_LDFRAGMENTS += linker.lf
diff --git a/components/vfs/test/linker.lf b/components/vfs/test/linker.lf
new file mode 100644 (file)
index 0000000..b623fc5
--- /dev/null
@@ -0,0 +1,6 @@
+[mapping]
+archive: libvfs.a
+entries:
+    vfs:esp_vfs_open (noflash)
+    vfs:esp_vfs_write (noflash)
+    vfs:esp_vfs_close (noflash)
index ff2c22e9150dcf9e180308e74e8fd1ca0880d2ca..8dea92794a0f49707ed3f0f5e859ab482ba1650a 100644 (file)
@@ -227,7 +227,7 @@ static int time_test_vfs_close(int fd)
     return 1;
 }
 
-int time_test_vfs_write(int fd, const void *data, size_t size)
+static int time_test_vfs_write(int fd, const void *data, size_t size)
 {
     return size;
 }
@@ -255,6 +255,8 @@ TEST_CASE("Open & write & close through VFS passes performance test", "[vfs]")
         TEST_ASSERT_NOT_EQUAL(close(fd), -1);
     }
 
+    // esp_vfs_open, esp_vfs_write and esp_vfs_close need to be in IRAM for performance test to pass
+
     const int64_t time_diff_us = esp_timer_get_time() - begin;
     const int ns_per_iter = (int) (time_diff_us * 1000 / iter_count);
     TEST_ESP_OK( esp_vfs_unregister(VFS_PREF1) );