[Openvpn-devel,v1] test_tls_crypt: Fix test failure on Windows

Message ID 20260714121238.13936-1-gert@greenie.muc.de
State New
Headers
Series [Openvpn-devel,v1] test_tls_crypt: Fix test failure on Windows |

Commit Message

Gert Doering July 14, 2026, 12:12 p.m. UTC
  From: Frank Lichtenheld <frank@lichtenheld.com>

- Exclude tests that use verify_script on Windows.
  We currently do not have openvpn_execve available
  for Windows tests. It would also need more work
  to replace the hardcoded paths.
- Use platform_gen_path instead of hard-coding /
  Do to the previous change that is not strictly
  necessary, but it also doesn't hurt and it fixes
  at least one issue if anyone ever decides to port
  this to Windows).

Change-Id: I45ddc8e350d3948b3197ae725df102d8ce73fa77
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Lev Stipakov <lstipakov@gmail.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1781
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1781
This mail reflects revision 1 of this Change.

Acked-by according to Gerrit (reflected above):
Lev Stipakov <lstipakov@gmail.com>
  

Patch

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4779d69..b2da69b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -811,7 +811,6 @@ 
 
     target_sources(test_mbuf PRIVATE
         tests/unit_tests/openvpn/mock_get_random.c
-        src/openvpn/buffer.c
         src/openvpn/mbuf.c
         )
 
diff --git a/tests/unit_tests/openvpn/test_tls_crypt.c b/tests/unit_tests/openvpn/test_tls_crypt.c
index a2987c6..db03437 100644
--- a/tests/unit_tests/openvpn/test_tls_crypt.c
+++ b/tests/unit_tests/openvpn/test_tls_crypt.c
@@ -710,7 +710,7 @@ 
     assert_true(tls_crypt_v2_extract_client_key(&tmp, &wrap_ctx, &tls_options));
     tls_wrap_free(&wrap_ctx);
 
-
+#ifndef _WIN32
     /* Use /bin/true as verify script */
     script_security_set(2);
     tls_options.tls_crypt_v2_verify_script = "/usr/bin/true";
@@ -727,11 +727,12 @@ 
      * platform_create_temp_file() */
     char non_random_tmpfile[128];
     snprintf(non_random_tmpfile, sizeof(non_random_tmpfile),
-             "%s/" PACKAGE "_tls_crypt_v2_metadata__%08" PRIx64 "%08" PRIx64 ".tmp",
-             tls_options.tmp_dir, get_random(), get_random());
-    unlink(non_random_tmpfile);
+             PACKAGE "_tls_crypt_v2_metadata__%08" PRIx64 "%08" PRIx64 ".tmp",
+             get_random(), get_random());
+    const char *tmpfile_path = platform_gen_path(tls_options.tmp_dir, non_random_tmpfile, &ctx->gc);
+    unlink(tmpfile_path);
 
-    expect_string(__wrap_buffer_write_file, filename, non_random_tmpfile);
+    expect_string(__wrap_buffer_write_file, filename, tmpfile_path);
 
     /* We do not write the first byte (type) to the file but rather to a
      * metadata_type environment variable */
@@ -752,7 +753,7 @@ 
         tls_options.tls_crypt_v2_verify_script = "/bin/false";
     }
 
-    expect_string(__wrap_buffer_write_file, filename, non_random_tmpfile);
+    expect_string(__wrap_buffer_write_file, filename, tmpfile_path);
     expect_memory(__wrap_buffer_write_file, pem, buf_bptr(&expected_metadata), buf_len(&expected_metadata));
     will_return(__wrap_buffer_write_file, true);
 
@@ -760,8 +761,8 @@ 
     assert_false(tls_crypt_v2_extract_client_key(&tmp, &wrap_ctx, &tls_options));
     tls_wrap_free(&wrap_ctx);
 
-
     tls_options.tls_crypt_v2_verify_script = NULL;
+#endif
 
     /* An outdated time should fail */
     tmp = create_client_key_input(ctx, 31);