From 00165d147bd16a7c97292842ced76f31222f6afb Mon Sep 17 00:00:00 2001 From: Turiiya <34311583+ttytm@users.noreply.github.com> Date: Sun, 29 Oct 2023 10:22:21 +0100 Subject: [PATCH] tools: add vpm tests for installing modules with different URLs/identifiers (#19664) --- cmd/tools/vpm/install_test.v | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 cmd/tools/vpm/install_test.v diff --git a/cmd/tools/vpm/install_test.v b/cmd/tools/vpm/install_test.v new file mode 100644 index 00000000000000..2702917d594e8e --- /dev/null +++ b/cmd/tools/vpm/install_test.v @@ -0,0 +1,43 @@ +import os +import v.vmod + +// Running tests appends a tsession path to VTMP, which is automatically cleaned up after the test. +// The following will result in e.g. `$VTMP/tsession_7fe8e93bd740_1612958707536/test-vmodules/`. +const test_path = os.join_path(os.vtmp_dir(), 'test-vmodules') + +fn prep_test_path() { + os.setenv('VMODULES', test_path, true) +} + +fn test_install_from_git_url() { + prep_test_path() + res := os.execute(@VEXE + ' install https://github.com/vlang/markdown') + mod := vmod.from_file(os.join_path(test_path, 'markdown', 'v.mod')) or { + assert false, err.str() + return + } + assert mod.name == 'markdown' + assert mod.dependencies == []string{} +} + +fn test_install_from_vpm_ident() { + prep_test_path() + res := os.execute(@VEXE + ' install nedpals.args') + mod := vmod.from_file(os.join_path(test_path, 'nedpals', 'args', 'v.mod')) or { + assert false, err.str() + return + } + assert mod.name == 'nedpals.args' + assert mod.dependencies == []string{} +} + +fn test_install_from_vpm_short_ident() { + prep_test_path() + res := os.execute(@VEXE + ' install pcre') + mod := vmod.from_file(os.join_path(test_path, 'pcre', 'v.mod')) or { + assert false, err.str() + return + } + assert mod.name == 'pcre' + assert mod.description == 'A simple regex library for V.' +}