From df1d4f34af0fb8505990daf6aa0732e62b243f93 Mon Sep 17 00:00:00 2001 From: Dmitriy Gertsog Date: Fri, 16 May 2025 15:07:12 +0300 Subject: [PATCH 1/2] binaries: add support for manage TCM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add support to manage installed `tcm` versions via `tt binaries` CLI. @TarantoolBot Title: add support for manage TCM binaries Add support to manage installed `tcm` versions via `tt binaries` CLI. **Example usage:** List of all installed versions ```sh tt binaries list ``` **Possible output:** ``` List of installed binaries: • tarantool: 2.11.6 3.4.0 [active] • tarantool-ee: gc64-3.4.0-0-r60 [active] gc64-2.11.6-0-r683 • tcm: 1.3.1-0-g074b5ffa 1.2.3-0-geae7e7d49 1.2.0-11-g2d0a0f495 [active] ``` Switch to the specified version ```sh tt binaries switch tcm 1.2.3-0-geae7e7d49 ``` **Possible output:** ``` • Switching to tcm 1.2.3-0-geae7e7d49. • Done ``` Closes #TNTP-2764 --- CHANGELOG.md | 1 + cli/binary/list.go | 1 + cli/binary/switch.go | 94 +++++++++++------------- cli/binary/switch_test.go | 10 +-- cli/cmd/binaries.go | 11 ++- test/integration/binaries/test_switch.py | 8 +- 6 files changed, 62 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05e02bafe..93476573c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. cluster manager from the `bin` directory. - `tt tcm status`: added command to check TCM runtime status (modes: `watchdog` or `interactive`). - `tt tcm stop`: add command for graceful termination of TCM processes (modes: `watchdog` or `interactive`). +- Add support manage installed `tcm` versions via `tt binaries` CLI. - Added support for completion with shell `fish` see the command `tt completion fish`. diff --git a/cli/binary/list.go b/cli/binary/list.go index 0840a3426..946b30001 100644 --- a/cli/binary/list.go +++ b/cli/binary/list.go @@ -113,6 +113,7 @@ func ListBinaries(cmdCtx *cmdcontext.CmdCtx, cliOpts *config.CliOpts) (err error search.ProgramCe, search.ProgramDev, search.ProgramEe, + search.ProgramTcm, } fmt.Println("List of installed binaries:") for _, program := range programs { diff --git a/cli/binary/switch.go b/cli/binary/switch.go index bf6878c39..4e6813832 100644 --- a/cli/binary/switch.go +++ b/cli/binary/switch.go @@ -93,72 +93,66 @@ func ChooseVersion(binDir string, program search.Program) (string, error) { return version, err } -// switchTt switches 'tt' program. -func switchTt(switchCtx SwitchCtx) error { - log.Infof("Switching to %s %s.", switchCtx.Program, switchCtx.Version) +// switchHeaders makes symlink for required version of headers. +func switchHeaders(switchCtx *SwitchCtx, versionStr string) error { + includeDir := filepath.Join(switchCtx.IncDir, "include") - ttVersion := switchCtx.Version - if !strings.HasPrefix(switchCtx.Version, "v") { - ttVersion = "v" + ttVersion + if !util.IsDir(filepath.Join(includeDir, versionStr)) { + return fmt.Errorf("headers %s is not installed in current environment", versionStr) } - versionStr := search.ProgramTt.String() + version.FsSeparator + ttVersion - if util.IsRegularFile(filepath.Join(switchCtx.BinDir, versionStr)) { - err := util.CreateSymlink(versionStr, filepath.Join(switchCtx.BinDir, "tt"), true) - if err != nil { - return fmt.Errorf("failed to switch version: %s", err) - } - log.Infof("Done") - } else { - return fmt.Errorf("%s %s is not installed in current environment", - switchCtx.Program, switchCtx.Version) + err := util.CreateSymlink(versionStr, + filepath.Join(includeDir, switchCtx.Program.Exec()), + true) + if err != nil { + return fmt.Errorf("failed create symlink: %s", err) } return nil } -// switchTarantool switches 'tarantool' program. -func switchTarantool(switchCtx SwitchCtx, enterprise bool) error { - log.Infof("Switching to %s %s.", switchCtx.Program, switchCtx.Version) - var versionStr string - if enterprise { - versionStr = search.ProgramEe.String() + version.FsSeparator + switchCtx.Version - } else { - versionStr = search.ProgramCe.String() + version.FsSeparator + switchCtx.Version +// switchBinary makes symlink for required binary version. +func switchBinary(switchCtx *SwitchCtx, versionStr string) error { + newBinary := filepath.Join(switchCtx.BinDir, versionStr) + if !util.IsRegularFile(newBinary) { + return fmt.Errorf("binary %s is not installed in current environment", newBinary) } - if util.IsRegularFile(filepath.Join(switchCtx.BinDir, versionStr)) && - util.IsDir(filepath.Join(switchCtx.IncDir, "include", versionStr)) { - err := util.CreateSymlink(versionStr, filepath.Join(switchCtx.BinDir, - "tarantool"), true) - if err != nil { - return fmt.Errorf("failed to switch version: %s", err) - } - err = util.CreateSymlink(versionStr, filepath.Join(switchCtx.IncDir, - "include", "tarantool"), true) - if err != nil { - return fmt.Errorf("failed to switch version: %s", err) - } - log.Infof("Done") - } else { - return fmt.Errorf("%s %s is not installed in current environment", - switchCtx.Program, switchCtx.Version) + + err := util.CreateSymlink(versionStr, + filepath.Join(switchCtx.BinDir, switchCtx.Program.Exec()), + true) + if err != nil { + return fmt.Errorf("failed create symlink: %s", err) } return nil } // Switch switches binaries. -func Switch(switchCtx SwitchCtx) error { - var err error - +func Switch(switchCtx *SwitchCtx) error { switch switchCtx.Program { case search.ProgramTt: - err = switchTt(switchCtx) - case search.ProgramCe: - err = switchTarantool(switchCtx, false) - case search.ProgramEe: - err = switchTarantool(switchCtx, true) - default: + if !strings.HasPrefix(switchCtx.Version, "v") { + switchCtx.Version = "v" + switchCtx.Version + } + + case search.ProgramUnknown: return fmt.Errorf("unknown application: %s", switchCtx.Program) } - return err + versionStr := switchCtx.Program.String() + version.FsSeparator + switchCtx.Version + log.Infof("Switching to %s", versionStr) + + err := switchBinary(switchCtx, versionStr) + if err != nil { + return fmt.Errorf("failed to switch binary: %s", err) + } + + if switchCtx.Program.IsTarantool() { + err = switchHeaders(switchCtx, versionStr) + if err != nil { + return fmt.Errorf("failed to switch headers: %s", err) + } + } + + log.Infof("Done") + return nil } diff --git a/cli/binary/switch_test.go b/cli/binary/switch_test.go index b33996804..56b9029cc 100644 --- a/cli/binary/switch_test.go +++ b/cli/binary/switch_test.go @@ -34,7 +34,7 @@ func TestSwitchTarantool(t *testing.T) { testCtx.Program, err = search.ParseProgram("tarantool") assert.NoError(t, err) testCtx.Version = "2.10.3" - err = Switch(testCtx) + err = Switch(&testCtx) assert.Nil(t, err) assert.FileExists(t, filepath.Join(testCtx.BinDir, "tarantool")) assert.FileExists(t, filepath.Join(testCtx.IncDir, "include/tarantool")) @@ -54,8 +54,8 @@ func TestSwitchUnknownProgram(t *testing.T) { testCtx.Program, err = search.ParseProgram("tarantool-foo") assert.Error(t, err) testCtx.Version = "2.10.3" - err = Switch(testCtx) - assert.Equal(t, err.Error(), "unknown application: unknown(0)") + err = Switch(&testCtx) + assert.Contains(t, err.Error(), "unknown application: unknown(0)") } func TestSwitchNotInstalledVersion(t *testing.T) { @@ -66,6 +66,6 @@ func TestSwitchNotInstalledVersion(t *testing.T) { testCtx.Program, err = search.ParseProgram("tarantool") assert.NoError(t, err) testCtx.Version = "2.10.3" - err = Switch(testCtx) - assert.Equal(t, err.Error(), "tarantool 2.10.3 is not installed in current environment") + err = Switch(&testCtx) + assert.Contains(t, err.Error(), "tarantool_2.10.3 is not installed in current environment") } diff --git a/cli/cmd/binaries.go b/cli/cmd/binaries.go index 5e3f5c46f..5688cbabe 100644 --- a/cli/cmd/binaries.go +++ b/cli/cmd/binaries.go @@ -14,12 +14,14 @@ var binariesSupportedPrograms = []string{ search.ProgramCe.String(), search.ProgramEe.String(), search.ProgramTt.String(), + search.ProgramTcm.String(), } // NewBinariesCmd creates binaries command. func NewBinariesCmd() *cobra.Command { binariesCmd := &cobra.Command{ - Use: "binaries", + Use: "binaries", + Short: "Manage installed binaries", } switchCmd := &cobra.Command{ @@ -41,8 +43,9 @@ You will need to choose version using arrow keys in your console. # Switch with program and version. $ tt binaries switch tarantool 2.10.4`, - Run: RunModuleFunc(internalSwitchModule), - Args: cobra.MatchAll(cobra.MaximumNArgs(2), binariesSwitchValidateArgs), + Run: RunModuleFunc(internalSwitchModule), + Args: cobra.MatchAll(cobra.MaximumNArgs(2), binariesSwitchValidateArgs), + ValidArgs: binariesSupportedPrograms, } listCmd := &cobra.Command{ Use: "list", @@ -95,7 +98,7 @@ func internalSwitchModule(cmdCtx *cmdcontext.CmdCtx, args []string) error { switchCtx.BinDir = cliOpts.Env.BinDir switchCtx.IncDir = cliOpts.Env.IncludeDir - err = binary.Switch(switchCtx) + err = binary.Switch(&switchCtx) return err } diff --git a/test/integration/binaries/test_switch.py b/test/integration/binaries/test_switch.py index c1fa16b4d..e61e3c6d9 100644 --- a/test/integration/binaries/test_switch.py +++ b/test/integration/binaries/test_switch.py @@ -32,7 +32,7 @@ def test_switch(tt_cmd, tmp_path): ) install_process_rc = install_process.wait() output = install_process.stdout.read() - assert "Switching to tarantool 2.10.3" in output + assert "Switching to tarantool_2.10.3" in output assert install_process_rc == 0 bin_path = os.path.join(tt_dir, "bin") @@ -70,7 +70,7 @@ def test_switch_with_link(tt_cmd, tmp_path): ) install_process_rc = install_process.wait() output = install_process.stdout.read() - assert "Switching to tarantool 2.10.3" in output + assert "Switching to tarantool_2.10.3" in output assert install_process_rc == 0 bin_path = os.path.join(tt_dir, "bin") @@ -136,7 +136,7 @@ def test_switch_tt(tt_cmd, tmp_path): ) switch_process_rc = switch_process.wait() output = switch_process.stdout.read() - assert "Switching to tt 7.7.7" in output + assert "Switching to tt_v7.7.7" in output assert switch_process_rc == 0 expected_bin = os.path.join(bin_dir_path, "tt_v7.7.7") @@ -168,7 +168,7 @@ def test_switch_tt_full_version_name(tt_cmd, tmp_path): ) switch_process_rc = switch_process.wait() output = switch_process.stdout.read() - assert "Switching to tt v7.7.7" in output + assert "Switching to tt_v7.7.7" in output assert switch_process_rc == 0 expected_bin = os.path.join(bin_dir_path, "tt_v7.7.7") From 52602459b42280a694eb68d81561a84c3af83fe2 Mon Sep 17 00:00:00 2001 From: Dmitriy Gertsog Date: Fri, 16 May 2025 20:03:01 +0300 Subject: [PATCH 2/2] binaries: update integration tests Part of #TNTP-2764 --- test/integration/binaries/test_list.py | 209 +++++++------- test/integration/binaries/test_switch.py | 260 +++++++----------- .../testdata/active_links/bin/tarantool | 1 + .../tt => active_links}/bin/tarantool_1.10.13 | 0 .../active_links}/bin/tarantool_2.10.3 | 0 .../tt => active_links}/bin/tarantool_2.10.5 | 0 .../binaries/testdata/active_links/bin/tcm | 1 + .../active_links/bin/tcm_1.2.0-11-g2d0a0f495 | 1 + .../active_links/bin/tcm_1.3.1-0-g074b5ffa | 1 + .../binaries/testdata/active_links/bin/tt | 1 + .../{ => testdata/active_links}/bin/tt_v0.1.0 | 0 .../tt => active_links}/inc/include/tarantool | 0 .../inc/include/tarantool_1.10.13/.gitkeep | 0 .../inc/include/tarantool_2.10.3/.gitkeep | 0 .../inc/include/tarantool_2.10.5/.gitkeep | 0 .../binaries/testdata/active_links/tt.yaml | 3 + .../{ => testdata/list}/bin/tarantool | 0 .../tt => list}/bin/tarantool_2.10.3 | 0 .../{ => testdata/list}/bin/tarantool_2.8.1 | 0 .../binaries/testdata/list/bin/tcm | 1 + .../testdata/list/bin/tcm_1.2.0-11-g2d0a0f495 | 1 + .../testdata/list/bin/tcm_1.3.1-0-g074b5ffa | 1 + .../list/bin/tt_v0.1.0} | 0 .../binaries/testdata/list/tt.yaml | 4 + .../tt => no_active}/bin/tarantool_1.10.13 | 0 .../testdata/no_active/bin/tarantool_2.10.3 | 2 + .../tt => no_active}/bin/tarantool_2.10.5 | 0 .../no_active/bin/tcm_1.2.0-11-g2d0a0f495 | 1 + .../no_active/bin/tcm_1.3.1-0-g074b5ffa | 1 + .../no_active/bin/tt_v0.1.0} | 0 .../inc/include/tarantool_1.10.13/.gitkeep | 0 .../inc/include/tarantool_2.10.3/.gitkeep | 0 .../inc/include/tarantool_2.10.5/.gitkeep | 0 .../{test_tarantool/tt => no_active}/tt.yaml | 0 .../tarantool_dev/bin/tarantool | 0 .../tarantool_dev/bin/tarantool_1.10.0} | 0 .../bin/tarantool_2.10.7} | 0 .../binaries/testdata/tarantool_dev/tarantool | 0 .../binaries/testdata/tarantool_dev/tt.yaml | 4 + .../testdata/test_tarantool_link/tt/tt.yaml | 3 - 40 files changed, 229 insertions(+), 266 deletions(-) create mode 120000 test/integration/binaries/testdata/active_links/bin/tarantool rename test/integration/binaries/testdata/{test_tarantool/tt => active_links}/bin/tarantool_1.10.13 (100%) mode change 100644 => 100755 rename test/integration/binaries/{ => testdata/active_links}/bin/tarantool_2.10.3 (100%) rename test/integration/binaries/testdata/{test_tarantool/tt => active_links}/bin/tarantool_2.10.5 (100%) create mode 120000 test/integration/binaries/testdata/active_links/bin/tcm create mode 100755 test/integration/binaries/testdata/active_links/bin/tcm_1.2.0-11-g2d0a0f495 create mode 100755 test/integration/binaries/testdata/active_links/bin/tcm_1.3.1-0-g074b5ffa create mode 120000 test/integration/binaries/testdata/active_links/bin/tt rename test/integration/binaries/{ => testdata/active_links}/bin/tt_v0.1.0 (100%) rename test/integration/binaries/testdata/{test_tarantool_link/tt => active_links}/inc/include/tarantool (100%) rename test/integration/binaries/testdata/{test_tarantool/tt => active_links}/inc/include/tarantool_1.10.13/.gitkeep (100%) rename test/integration/binaries/testdata/{test_tarantool/tt => active_links}/inc/include/tarantool_2.10.3/.gitkeep (100%) rename test/integration/binaries/testdata/{test_tarantool/tt => active_links}/inc/include/tarantool_2.10.5/.gitkeep (100%) create mode 100644 test/integration/binaries/testdata/active_links/tt.yaml rename test/integration/binaries/{ => testdata/list}/bin/tarantool (100%) rename test/integration/binaries/testdata/{test_tarantool/tt => list}/bin/tarantool_2.10.3 (100%) mode change 100644 => 100755 rename test/integration/binaries/{ => testdata/list}/bin/tarantool_2.8.1 (100%) create mode 120000 test/integration/binaries/testdata/list/bin/tcm create mode 100755 test/integration/binaries/testdata/list/bin/tcm_1.2.0-11-g2d0a0f495 create mode 100755 test/integration/binaries/testdata/list/bin/tcm_1.3.1-0-g074b5ffa rename test/integration/binaries/{tarantool_dev/bin/tarantool_1.10.0 => testdata/list/bin/tt_v0.1.0} (100%) mode change 100644 => 100755 create mode 100644 test/integration/binaries/testdata/list/tt.yaml rename test/integration/binaries/testdata/{test_tarantool_link/tt => no_active}/bin/tarantool_1.10.13 (100%) mode change 100644 => 100755 create mode 100755 test/integration/binaries/testdata/no_active/bin/tarantool_2.10.3 rename test/integration/binaries/testdata/{test_tarantool_link/tt => no_active}/bin/tarantool_2.10.5 (100%) create mode 100755 test/integration/binaries/testdata/no_active/bin/tcm_1.2.0-11-g2d0a0f495 create mode 100755 test/integration/binaries/testdata/no_active/bin/tcm_1.3.1-0-g074b5ffa rename test/integration/binaries/{tarantool_dev/bin/tarantool_2.10.7 => testdata/no_active/bin/tt_v0.1.0} (100%) mode change 100644 => 100755 rename test/integration/binaries/testdata/{test_tarantool_link/tt => no_active}/inc/include/tarantool_1.10.13/.gitkeep (100%) rename test/integration/binaries/testdata/{test_tarantool_link/tt => no_active}/inc/include/tarantool_2.10.3/.gitkeep (100%) rename test/integration/binaries/testdata/{test_tarantool_link/tt => no_active}/inc/include/tarantool_2.10.5/.gitkeep (100%) rename test/integration/binaries/testdata/{test_tarantool/tt => no_active}/tt.yaml (100%) rename test/integration/binaries/{ => testdata}/tarantool_dev/bin/tarantool (100%) rename test/integration/binaries/{tarantool_dev/tarantool => testdata/tarantool_dev/bin/tarantool_1.10.0} (100%) mode change 100755 => 100644 rename test/integration/binaries/testdata/{test_tarantool_link/tt/bin/tarantool_2.10.3 => tarantool_dev/bin/tarantool_2.10.7} (100%) create mode 100755 test/integration/binaries/testdata/tarantool_dev/tarantool create mode 100644 test/integration/binaries/testdata/tarantool_dev/tt.yaml delete mode 100644 test/integration/binaries/testdata/test_tarantool_link/tt/tt.yaml diff --git a/test/integration/binaries/test_list.py b/test/integration/binaries/test_list.py index 04054d8cd..c83d475d8 100644 --- a/test/integration/binaries/test_list.py +++ b/test/integration/binaries/test_list.py @@ -1,150 +1,139 @@ -import os -import shutil -import subprocess +import re +from pathlib import Path +from shutil import copyfile, copytree from utils import config_name, run_command_and_get_output +DATA_DIR = Path(__file__).parent / "testdata" +ANSI_ESCAPE = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])") -def test_list(tt_cmd, tmp_path): - # Copy the test bin_dir to the "run" directory. - test_app_path = os.path.join(os.path.dirname(__file__), "bin") - shutil.copytree(test_app_path, tmp_path / "bin", True) - configPath = tmp_path / config_name - # Create test config - with open(configPath, 'w') as f: - f.write('tt:\n env:\n bin_dir: "./bin"\n inc_dir:\n') +def cleanup_ansi(text): + return ANSI_ESCAPE.sub("", text) - # Print binaries - binaries_cmd = [tt_cmd, "--cfg", configPath, "binaries", "list"] - binaries_process = subprocess.Popen( - binaries_cmd, - cwd=tmp_path, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) - binaries_process.wait() - output = binaries_process.stdout.read() +def compare_output(actual: str, expected: str) -> bool: + """ + Compare the output of the command with the expected output. + """ + # Cleaning lines. Remove leading, trailing whitespace and ANSI escape codes. + got_lines = [cleanup_ansi(line.strip()) for line in actual.splitlines()] + expected_lines = [line.strip() for line in expected.splitlines()] - assert "tt" in output - assert "0.1.0" in output - assert "tarantool" in output - assert "2.10.3" in output - assert "2.8.1 [active]" in output + return got_lines == expected_lines + + +def test_list(tt_cmd, tmp_path): + copytree(DATA_DIR / "list", tmp_path, symlinks=True, dirs_exist_ok=True) + + rc, output = run_command_and_get_output([tt_cmd, "binaries", "list"], cwd=tmp_path) + + expected_output = """List of installed binaries: + • tt: + 0.1.0 + • tarantool: + 2.10.3 + 2.8.1 [active] + • tcm: + 1.3.1-0-g074b5ffa [active] + 1.2.0-11-g2d0a0f495 +""" + assert rc == 0 + assert compare_output(output, expected_output) def test_list_no_directory(tt_cmd, tmp_path): - configPath = tmp_path / config_name # Create test config - with open(configPath, 'w') as f: - f.write('tt:\n env:\n bin_dir: "./bin"\n inc_dir:\n') + copyfile(DATA_DIR / "list" / config_name, tmp_path / config_name) # Print binaries - binaries_cmd = [tt_cmd, "--cfg", configPath, "binaries", "list"] - binaries_process = subprocess.Popen( - binaries_cmd, - cwd=tmp_path, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) - - binaries_process.wait() - output = binaries_process.stdout.read() + rc, output = run_command_and_get_output([tt_cmd, "binaries", "list"], cwd=tmp_path) + assert rc == 1 assert "there are no binaries installed in this environment of 'tt'" in output def test_list_empty_directory(tt_cmd, tmp_path): - configPath = tmp_path / config_name - os.mkdir(tmp_path / "bin") - # Create test config - with open(configPath, 'w') as f: - f.write('tt:\n env:\n bin_dir: "./bin"\n inc_dir:\n') + # Create test config and empty bin directory. + copyfile(DATA_DIR / "list" / config_name, tmp_path / config_name) + (tmp_path / "bin").mkdir() # Print binaries - binaries_cmd = [tt_cmd, "--cfg", configPath, "binaries", "list"] - binaries_process = subprocess.Popen( - binaries_cmd, - cwd=tmp_path, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) - - binaries_process.wait() - output = binaries_process.stdout.read() + rc, output = run_command_and_get_output([tt_cmd, "binaries", "list"], cwd=tmp_path) + assert rc == 1 assert "there are no binaries installed in this environment of 'tt'" in output def test_list_tarantool_dev(tt_cmd, tmp_path): # Copy the test dir to the "run" directory. - test_app_path = os.path.join(os.path.dirname(__file__), "tarantool_dev") - shutil.copytree(test_app_path, tmp_path / "tarantool_dev", True) - - config_path = tmp_path / config_name - # Create test config. - with open(config_path, "w") as f: - f.write( - 'env:\n bin_dir: "./tarantool_dev/bin"\n inc_dir:\n') - - binaries_cmd = [tt_cmd, "--cfg", config_path, "binaries", "list"] - binaries_process = subprocess.Popen( - binaries_cmd, - cwd=tmp_path, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) + copytree(DATA_DIR / "tarantool_dev", tmp_path, symlinks=True, dirs_exist_ok=True) + + rc, output = run_command_and_get_output([tt_cmd, "binaries", "list"], cwd=tmp_path) + + expected_output = f"""List of installed binaries: + • tarantool: + 2.10.7 + 1.10.0 + • tarantool-dev: + tarantool-dev -> {tmp_path}/tarantool [active] +""" + assert rc == 0 + assert compare_output(output, expected_output) - binaries_process.wait() - output = binaries_process.stdout.read() - assert "2.10.7" in output - assert "1.10.0" in output - assert "tarantool-dev" in output +def replace_prog(prog: Path, version: str) -> None: + prog.unlink(missing_ok=True) + with open(prog, "w") as p: + p.write( + f"""#!/bin/sh +echo '{version}' +""" + ) + prog.chmod(0o750) def test_list_tarantool_no_symlink(tt_cmd, tmp_path): # Copy the test bin_dir to the "run" directory. - test_app_path = os.path.join(os.path.dirname(__file__), "bin") - shutil.copytree(test_app_path, tmp_path / "bin", True) + copytree(DATA_DIR / "list", tmp_path, symlinks=True, dirs_exist_ok=True) - configPath = tmp_path / config_name - # Create test config - with open(configPath, 'w') as f: - f.write('tt:\n env:\n bin_dir: "./bin"\n inc_dir:\n') - - os.remove(tmp_path / "bin" / "tarantool") - with open(tmp_path / "bin" / "tarantool", "w") as tnt_file: - tnt_file.write("""#!/bin/sh -echo 'Tarantool 3.1.0-entrypoint-83-gcb0264c3c'""") - os.chmod(tmp_path / "bin" / "tarantool", 0o750) + replace_prog( + tmp_path / "bin" / "tarantool", "Tarantool 3.1.0-entrypoint-83-gcb0264c3c" + ) # Print binaries - binaries_cmd = [tt_cmd, "--cfg", configPath, "binaries", "list"] - rc, output = run_command_and_get_output(binaries_cmd, cwd=tmp_path) + rc, output = run_command_and_get_output([tt_cmd, "binaries", "list"], cwd=tmp_path) + + expected_output = """List of installed binaries: + • tt: + 0.1.0 + • tarantool: + 3.1.0-entrypoint-83-gcb0264c3c [active] + 2.10.3 + 2.8.1 + • tcm: + 1.3.1-0-g074b5ffa [active] + 1.2.0-11-g2d0a0f495 +""" assert rc == 0 - assert "tt" in output - assert "0.1.0" in output - assert "tarantool:" in output - assert "2.10.3" in output - assert "2.8.1" in output - assert "3.1.0-entrypoint-83-gcb0264c3c [active]" in output - - # Remove non-versioned tarantool binary. - os.remove(tmp_path / "bin" / "tarantool") - binaries_cmd = [tt_cmd, "--cfg", configPath, "binaries", "list"] - rc, output = run_command_and_get_output(binaries_cmd, cwd=tmp_path) + assert compare_output(output, expected_output) + + # Remove non-versioned tarantool binary and TCM symlink. + (tmp_path / "bin" / "tarantool").unlink(missing_ok=True) + (tmp_path / "bin" / "tcm").unlink(missing_ok=True) + rc, output = run_command_and_get_output([tt_cmd, "binaries", "list"], cwd=tmp_path) + + expected_output = """List of installed binaries: + • tt: + 0.1.0 + • tarantool: + 2.10.3 + 2.8.1 + • tcm: + 1.3.1-0-g074b5ffa + 1.2.0-11-g2d0a0f495 +""" assert rc == 0 - assert "tt" in output - assert "0.1.0" in output - assert "tarantool:" in output - assert "2.10.3" in output - assert "2.8.1" in output - assert "[active]" not in output # No active tarantool. + assert compare_output(output, expected_output) diff --git a/test/integration/binaries/test_switch.py b/test/integration/binaries/test_switch.py index e61e3c6d9..a9acc8db8 100644 --- a/test/integration/binaries/test_switch.py +++ b/test/integration/binaries/test_switch.py @@ -1,176 +1,130 @@ -import os -import shutil -import subprocess - -import yaml - -from utils import config_name - - -def test_switch(tt_cmd, tmp_path): - # Copy test files. - testdata_path = os.path.join( - os.path.dirname(__file__), - "testdata/test_tarantool" - ) - shutil.copytree(testdata_path, tmp_path / "testdata", True) - testdata_path = tmp_path / "testdata" - - tt_dir = os.path.join(testdata_path, "tt") - - install_cmd = [ +from pathlib import Path +from shutil import copyfile, copytree +from typing import Optional + +import pytest + +from utils import config_name, run_command_and_get_output + +DATA_DIR = Path(__file__).parent / "testdata" + + +def assert_active_binaries(symlink: Path, expected: str, inc_subdir: Optional[str]): + expected_name = f"{symlink.name}_{expected}" + bin = symlink.resolve() + bin_expected = symlink.with_name(expected_name) + assert bin == bin_expected + + if inc_subdir: + includes = symlink.parents[1] / inc_subdir / "include" + inc_actual = includes / symlink.name + assert inc_actual.is_symlink() + inc_actual = inc_actual.resolve() + inc_expected = includes / expected_name + assert inc_expected == inc_actual + + +@pytest.mark.parametrize( + "program, version, includes", + [ + pytest.param("tarantool", "2.10.3", "inc", id="tarantool"), + pytest.param("tcm", "1.2.0-11-g2d0a0f495", None, id="tcm"), + pytest.param("tt", "v0.1.0", None, id="tt"), + ], +) +def test_switch( + tt_cmd: Path, tmp_path: Path, program: str, version: str, includes: Optional[str] +) -> None: + copytree(DATA_DIR / "no_active", tmp_path, symlinks=True, dirs_exist_ok=True) + + cmd = [ tt_cmd, - "--cfg", os.path.join(tt_dir, config_name), - "binaries", "switch", "tarantool", "2.10.3" + "binaries", + "switch", + program, + version, ] - install_process = subprocess.Popen( - install_cmd, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True + rc, output = run_command_and_get_output(cmd, cwd=tmp_path) + + assert rc == 0 + assert f"Switching to {program}_{version}" in output + assert_active_binaries(tmp_path / "bin" / program, version, includes) + + +@pytest.mark.parametrize( + "program, version, includes", + [ + pytest.param("tarantool", "2.10.3", "inc", id="tarantool"), + pytest.param("tcm", "1.2.0-11-g2d0a0f495", None, id="tcm"), + pytest.param("tt", "v0.1.0", None, id="tt"), + ], +) +def test_switch_with_link( + tt_cmd: Path, tmp_path: Path, program: str, version: str, includes: Optional[str] +) -> None: + copytree( + DATA_DIR / "active_links", + tmp_path, + symlinks=True, + dirs_exist_ok=True, ) - install_process_rc = install_process.wait() - output = install_process.stdout.read() - assert "Switching to tarantool_2.10.3" in output - assert install_process_rc == 0 - - bin_path = os.path.join(tt_dir, "bin") - expected_bin = os.path.join(bin_path, "tarantool_2.10.3") - tarantool_bin = os.path.realpath(os.path.join(bin_path, "tarantool")) - inc_path = os.path.join(tt_dir, "inc/include") - expected_inc = os.path.join(inc_path, "tarantool_2.10.3") - tarantool_inc = os.path.realpath(os.path.join(inc_path, "tarantool")) - assert tarantool_bin == expected_bin - assert tarantool_inc == expected_inc - - -def test_switch_with_link(tt_cmd, tmp_path): - # Copy test files. - testdata_path = os.path.join( - os.path.dirname(__file__), - "testdata/test_tarantool_link" - ) - shutil.copytree(testdata_path, tmp_path / "testdata", True) - testdata_path = tmp_path / "testdata" - - tt_dir = os.path.join(testdata_path, "tt") - install_cmd = [ + cmd = [ tt_cmd, - "--cfg", os.path.join(tt_dir, config_name), - "binaries", "switch", "tarantool", "2.10.3" + "--self", # Note: don't use tt from test data environment. + "binaries", + "switch", + program, + version, ] + rc, output = run_command_and_get_output(cmd, cwd=tmp_path) - install_process = subprocess.Popen( - install_cmd, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) - install_process_rc = install_process.wait() - output = install_process.stdout.read() - assert "Switching to tarantool_2.10.3" in output - assert install_process_rc == 0 - - bin_path = os.path.join(tt_dir, "bin") - expected_bin = os.path.join(bin_path, "tarantool_2.10.3") - tarantool_bin = os.path.realpath(os.path.join(bin_path, "tarantool")) - inc_path = os.path.join(tt_dir, "inc/include") - expected_inc = os.path.join(inc_path, "tarantool_2.10.3") - tarantool_inc = os.path.realpath(os.path.join(inc_path, "tarantool")) - assert tarantool_bin == expected_bin - assert tarantool_inc == expected_inc + assert rc == 0 + assert f"Switching to {program}_{version}" in output + assert_active_binaries(tmp_path / "bin" / program, version, includes) def test_switch_invalid_program(tt_cmd, tmp_path): - # Copy test files. - testdata_path = os.path.join( - os.path.dirname(__file__), - "testdata/test_tarantool" - ) - shutil.copytree(testdata_path, tmp_path / "testdata", True) - testdata_path = tmp_path / "testdata" - - tt_dir = os.path.join(testdata_path, "tt") + copytree(DATA_DIR / "no_active", tmp_path, symlinks=True, dirs_exist_ok=True) - install_cmd = [ + cmd = [ tt_cmd, - "--cfg", os.path.join(tt_dir, config_name), - "binaries", "switch", "nodejs", "2.10.3" + "binaries", + "switch", + "nodejs", + "2.10.3", ] + rc, output = run_command_and_get_output(cmd, cwd=tmp_path) - install_process = subprocess.Popen( - install_cmd, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) - install_process_rc = install_process.wait() - output = install_process.stdout.read() + assert rc != 0 assert "not supported program: nodejs" in output - assert install_process_rc != 0 -def test_switch_tt(tt_cmd, tmp_path): - config_path = tmp_path / "tt.yaml" - bin_dir_path = tmp_path / "bin" - with open(config_path, "w") as f: - yaml.dump({"env": {"bin_dir": bin_dir_path.as_posix()}}, f) - - fake_tt_path = os.path.join(bin_dir_path, "tt_v7.7.7") - os.makedirs(bin_dir_path) - shutil.copyfile(tt_cmd, fake_tt_path) - - switch_cmd = [ +@pytest.mark.parametrize( + "prefix", + [ + pytest.param("v", id="full_version"), + pytest.param("", id="short_version"), + ], +) +def test_switch_tt(tt_cmd, tmp_path, prefix): + copyfile(DATA_DIR / "no_active" / config_name, tmp_path / config_name) + fake_tt = tmp_path / "bin" / "tt_v7.7.7" + fake_tt.parent.mkdir() + copyfile(tt_cmd, fake_tt) + + cmd = [ tt_cmd, - "--cfg", config_path, - "binaries", "switch", "tt", "7.7.7" + "binaries", + "switch", + "tt", + f"{prefix}7.7.7", ] + rc, output = run_command_and_get_output(cmd, cwd=tmp_path) - switch_process = subprocess.Popen( - switch_cmd, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) - switch_process_rc = switch_process.wait() - output = switch_process.stdout.read() - assert "Switching to tt_v7.7.7" in output - assert switch_process_rc == 0 - - expected_bin = os.path.join(bin_dir_path, "tt_v7.7.7") - tt_bin = os.path.realpath(os.path.join(bin_dir_path, "tt")) - assert tt_bin == expected_bin - - -def test_switch_tt_full_version_name(tt_cmd, tmp_path): - config_path = tmp_path / "tt.yaml" - bin_dir_path = tmp_path / "bin" - with open(config_path, "w") as f: - yaml.dump({"env": {"bin_dir": bin_dir_path.as_posix()}}, f) - - fake_tt_path = os.path.join(bin_dir_path, "tt_v7.7.7") - os.makedirs(bin_dir_path) - shutil.copyfile(tt_cmd, fake_tt_path) - - switch_cmd = [ - tt_cmd, - "--cfg", config_path, - "binaries", "switch", "tt", "v7.7.7" - ] - - switch_process = subprocess.Popen( - switch_cmd, - stderr=subprocess.STDOUT, - stdout=subprocess.PIPE, - text=True - ) - switch_process_rc = switch_process.wait() - output = switch_process.stdout.read() + assert rc == 0 assert "Switching to tt_v7.7.7" in output - assert switch_process_rc == 0 - expected_bin = os.path.join(bin_dir_path, "tt_v7.7.7") - tt_bin = os.path.realpath(os.path.join(bin_dir_path, "tt")) - assert tt_bin == expected_bin + expected_tt = (tmp_path / "bin" / "tt").resolve() + assert fake_tt == expected_tt diff --git a/test/integration/binaries/testdata/active_links/bin/tarantool b/test/integration/binaries/testdata/active_links/bin/tarantool new file mode 120000 index 000000000..15332707d --- /dev/null +++ b/test/integration/binaries/testdata/active_links/bin/tarantool @@ -0,0 +1 @@ +tarantool_1.10.13 \ No newline at end of file diff --git a/test/integration/binaries/testdata/test_tarantool/tt/bin/tarantool_1.10.13 b/test/integration/binaries/testdata/active_links/bin/tarantool_1.10.13 old mode 100644 new mode 100755 similarity index 100% rename from test/integration/binaries/testdata/test_tarantool/tt/bin/tarantool_1.10.13 rename to test/integration/binaries/testdata/active_links/bin/tarantool_1.10.13 diff --git a/test/integration/binaries/bin/tarantool_2.10.3 b/test/integration/binaries/testdata/active_links/bin/tarantool_2.10.3 similarity index 100% rename from test/integration/binaries/bin/tarantool_2.10.3 rename to test/integration/binaries/testdata/active_links/bin/tarantool_2.10.3 diff --git a/test/integration/binaries/testdata/test_tarantool/tt/bin/tarantool_2.10.5 b/test/integration/binaries/testdata/active_links/bin/tarantool_2.10.5 similarity index 100% rename from test/integration/binaries/testdata/test_tarantool/tt/bin/tarantool_2.10.5 rename to test/integration/binaries/testdata/active_links/bin/tarantool_2.10.5 diff --git a/test/integration/binaries/testdata/active_links/bin/tcm b/test/integration/binaries/testdata/active_links/bin/tcm new file mode 120000 index 000000000..e9835dbf2 --- /dev/null +++ b/test/integration/binaries/testdata/active_links/bin/tcm @@ -0,0 +1 @@ +tcm_1.3.1-0-g074b5ffa \ No newline at end of file diff --git a/test/integration/binaries/testdata/active_links/bin/tcm_1.2.0-11-g2d0a0f495 b/test/integration/binaries/testdata/active_links/bin/tcm_1.2.0-11-g2d0a0f495 new file mode 100755 index 000000000..1a2485251 --- /dev/null +++ b/test/integration/binaries/testdata/active_links/bin/tcm_1.2.0-11-g2d0a0f495 @@ -0,0 +1 @@ +#!/bin/sh diff --git a/test/integration/binaries/testdata/active_links/bin/tcm_1.3.1-0-g074b5ffa b/test/integration/binaries/testdata/active_links/bin/tcm_1.3.1-0-g074b5ffa new file mode 100755 index 000000000..1a2485251 --- /dev/null +++ b/test/integration/binaries/testdata/active_links/bin/tcm_1.3.1-0-g074b5ffa @@ -0,0 +1 @@ +#!/bin/sh diff --git a/test/integration/binaries/testdata/active_links/bin/tt b/test/integration/binaries/testdata/active_links/bin/tt new file mode 120000 index 000000000..6423c3c2c --- /dev/null +++ b/test/integration/binaries/testdata/active_links/bin/tt @@ -0,0 +1 @@ +tt_v0.1.0 \ No newline at end of file diff --git a/test/integration/binaries/bin/tt_v0.1.0 b/test/integration/binaries/testdata/active_links/bin/tt_v0.1.0 similarity index 100% rename from test/integration/binaries/bin/tt_v0.1.0 rename to test/integration/binaries/testdata/active_links/bin/tt_v0.1.0 diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool b/test/integration/binaries/testdata/active_links/inc/include/tarantool similarity index 100% rename from test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool rename to test/integration/binaries/testdata/active_links/inc/include/tarantool diff --git a/test/integration/binaries/testdata/test_tarantool/tt/inc/include/tarantool_1.10.13/.gitkeep b/test/integration/binaries/testdata/active_links/inc/include/tarantool_1.10.13/.gitkeep similarity index 100% rename from test/integration/binaries/testdata/test_tarantool/tt/inc/include/tarantool_1.10.13/.gitkeep rename to test/integration/binaries/testdata/active_links/inc/include/tarantool_1.10.13/.gitkeep diff --git a/test/integration/binaries/testdata/test_tarantool/tt/inc/include/tarantool_2.10.3/.gitkeep b/test/integration/binaries/testdata/active_links/inc/include/tarantool_2.10.3/.gitkeep similarity index 100% rename from test/integration/binaries/testdata/test_tarantool/tt/inc/include/tarantool_2.10.3/.gitkeep rename to test/integration/binaries/testdata/active_links/inc/include/tarantool_2.10.3/.gitkeep diff --git a/test/integration/binaries/testdata/test_tarantool/tt/inc/include/tarantool_2.10.5/.gitkeep b/test/integration/binaries/testdata/active_links/inc/include/tarantool_2.10.5/.gitkeep similarity index 100% rename from test/integration/binaries/testdata/test_tarantool/tt/inc/include/tarantool_2.10.5/.gitkeep rename to test/integration/binaries/testdata/active_links/inc/include/tarantool_2.10.5/.gitkeep diff --git a/test/integration/binaries/testdata/active_links/tt.yaml b/test/integration/binaries/testdata/active_links/tt.yaml new file mode 100644 index 000000000..0b3bacdaa --- /dev/null +++ b/test/integration/binaries/testdata/active_links/tt.yaml @@ -0,0 +1,3 @@ +env: + bin_dir: "bin" + inc_dir: "inc" diff --git a/test/integration/binaries/bin/tarantool b/test/integration/binaries/testdata/list/bin/tarantool similarity index 100% rename from test/integration/binaries/bin/tarantool rename to test/integration/binaries/testdata/list/bin/tarantool diff --git a/test/integration/binaries/testdata/test_tarantool/tt/bin/tarantool_2.10.3 b/test/integration/binaries/testdata/list/bin/tarantool_2.10.3 old mode 100644 new mode 100755 similarity index 100% rename from test/integration/binaries/testdata/test_tarantool/tt/bin/tarantool_2.10.3 rename to test/integration/binaries/testdata/list/bin/tarantool_2.10.3 diff --git a/test/integration/binaries/bin/tarantool_2.8.1 b/test/integration/binaries/testdata/list/bin/tarantool_2.8.1 similarity index 100% rename from test/integration/binaries/bin/tarantool_2.8.1 rename to test/integration/binaries/testdata/list/bin/tarantool_2.8.1 diff --git a/test/integration/binaries/testdata/list/bin/tcm b/test/integration/binaries/testdata/list/bin/tcm new file mode 120000 index 000000000..e9835dbf2 --- /dev/null +++ b/test/integration/binaries/testdata/list/bin/tcm @@ -0,0 +1 @@ +tcm_1.3.1-0-g074b5ffa \ No newline at end of file diff --git a/test/integration/binaries/testdata/list/bin/tcm_1.2.0-11-g2d0a0f495 b/test/integration/binaries/testdata/list/bin/tcm_1.2.0-11-g2d0a0f495 new file mode 100755 index 000000000..1a2485251 --- /dev/null +++ b/test/integration/binaries/testdata/list/bin/tcm_1.2.0-11-g2d0a0f495 @@ -0,0 +1 @@ +#!/bin/sh diff --git a/test/integration/binaries/testdata/list/bin/tcm_1.3.1-0-g074b5ffa b/test/integration/binaries/testdata/list/bin/tcm_1.3.1-0-g074b5ffa new file mode 100755 index 000000000..1a2485251 --- /dev/null +++ b/test/integration/binaries/testdata/list/bin/tcm_1.3.1-0-g074b5ffa @@ -0,0 +1 @@ +#!/bin/sh diff --git a/test/integration/binaries/tarantool_dev/bin/tarantool_1.10.0 b/test/integration/binaries/testdata/list/bin/tt_v0.1.0 old mode 100644 new mode 100755 similarity index 100% rename from test/integration/binaries/tarantool_dev/bin/tarantool_1.10.0 rename to test/integration/binaries/testdata/list/bin/tt_v0.1.0 diff --git a/test/integration/binaries/testdata/list/tt.yaml b/test/integration/binaries/testdata/list/tt.yaml new file mode 100644 index 000000000..ec80e9b41 --- /dev/null +++ b/test/integration/binaries/testdata/list/tt.yaml @@ -0,0 +1,4 @@ +tt: + env: + bin_dir: bin + inc_dir: diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/bin/tarantool_1.10.13 b/test/integration/binaries/testdata/no_active/bin/tarantool_1.10.13 old mode 100644 new mode 100755 similarity index 100% rename from test/integration/binaries/testdata/test_tarantool_link/tt/bin/tarantool_1.10.13 rename to test/integration/binaries/testdata/no_active/bin/tarantool_1.10.13 diff --git a/test/integration/binaries/testdata/no_active/bin/tarantool_2.10.3 b/test/integration/binaries/testdata/no_active/bin/tarantool_2.10.3 new file mode 100755 index 000000000..c6c9682f8 --- /dev/null +++ b/test/integration/binaries/testdata/no_active/bin/tarantool_2.10.3 @@ -0,0 +1,2 @@ +#!/bin/sh +echo "Tarantool 3.1.0-entrypoint-83-gcb0264c3c" diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/bin/tarantool_2.10.5 b/test/integration/binaries/testdata/no_active/bin/tarantool_2.10.5 similarity index 100% rename from test/integration/binaries/testdata/test_tarantool_link/tt/bin/tarantool_2.10.5 rename to test/integration/binaries/testdata/no_active/bin/tarantool_2.10.5 diff --git a/test/integration/binaries/testdata/no_active/bin/tcm_1.2.0-11-g2d0a0f495 b/test/integration/binaries/testdata/no_active/bin/tcm_1.2.0-11-g2d0a0f495 new file mode 100755 index 000000000..1a2485251 --- /dev/null +++ b/test/integration/binaries/testdata/no_active/bin/tcm_1.2.0-11-g2d0a0f495 @@ -0,0 +1 @@ +#!/bin/sh diff --git a/test/integration/binaries/testdata/no_active/bin/tcm_1.3.1-0-g074b5ffa b/test/integration/binaries/testdata/no_active/bin/tcm_1.3.1-0-g074b5ffa new file mode 100755 index 000000000..1a2485251 --- /dev/null +++ b/test/integration/binaries/testdata/no_active/bin/tcm_1.3.1-0-g074b5ffa @@ -0,0 +1 @@ +#!/bin/sh diff --git a/test/integration/binaries/tarantool_dev/bin/tarantool_2.10.7 b/test/integration/binaries/testdata/no_active/bin/tt_v0.1.0 old mode 100644 new mode 100755 similarity index 100% rename from test/integration/binaries/tarantool_dev/bin/tarantool_2.10.7 rename to test/integration/binaries/testdata/no_active/bin/tt_v0.1.0 diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool_1.10.13/.gitkeep b/test/integration/binaries/testdata/no_active/inc/include/tarantool_1.10.13/.gitkeep similarity index 100% rename from test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool_1.10.13/.gitkeep rename to test/integration/binaries/testdata/no_active/inc/include/tarantool_1.10.13/.gitkeep diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool_2.10.3/.gitkeep b/test/integration/binaries/testdata/no_active/inc/include/tarantool_2.10.3/.gitkeep similarity index 100% rename from test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool_2.10.3/.gitkeep rename to test/integration/binaries/testdata/no_active/inc/include/tarantool_2.10.3/.gitkeep diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool_2.10.5/.gitkeep b/test/integration/binaries/testdata/no_active/inc/include/tarantool_2.10.5/.gitkeep similarity index 100% rename from test/integration/binaries/testdata/test_tarantool_link/tt/inc/include/tarantool_2.10.5/.gitkeep rename to test/integration/binaries/testdata/no_active/inc/include/tarantool_2.10.5/.gitkeep diff --git a/test/integration/binaries/testdata/test_tarantool/tt/tt.yaml b/test/integration/binaries/testdata/no_active/tt.yaml similarity index 100% rename from test/integration/binaries/testdata/test_tarantool/tt/tt.yaml rename to test/integration/binaries/testdata/no_active/tt.yaml diff --git a/test/integration/binaries/tarantool_dev/bin/tarantool b/test/integration/binaries/testdata/tarantool_dev/bin/tarantool similarity index 100% rename from test/integration/binaries/tarantool_dev/bin/tarantool rename to test/integration/binaries/testdata/tarantool_dev/bin/tarantool diff --git a/test/integration/binaries/tarantool_dev/tarantool b/test/integration/binaries/testdata/tarantool_dev/bin/tarantool_1.10.0 old mode 100755 new mode 100644 similarity index 100% rename from test/integration/binaries/tarantool_dev/tarantool rename to test/integration/binaries/testdata/tarantool_dev/bin/tarantool_1.10.0 diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/bin/tarantool_2.10.3 b/test/integration/binaries/testdata/tarantool_dev/bin/tarantool_2.10.7 similarity index 100% rename from test/integration/binaries/testdata/test_tarantool_link/tt/bin/tarantool_2.10.3 rename to test/integration/binaries/testdata/tarantool_dev/bin/tarantool_2.10.7 diff --git a/test/integration/binaries/testdata/tarantool_dev/tarantool b/test/integration/binaries/testdata/tarantool_dev/tarantool new file mode 100755 index 000000000..e69de29bb diff --git a/test/integration/binaries/testdata/tarantool_dev/tt.yaml b/test/integration/binaries/testdata/tarantool_dev/tt.yaml new file mode 100644 index 000000000..ec80e9b41 --- /dev/null +++ b/test/integration/binaries/testdata/tarantool_dev/tt.yaml @@ -0,0 +1,4 @@ +tt: + env: + bin_dir: bin + inc_dir: diff --git a/test/integration/binaries/testdata/test_tarantool_link/tt/tt.yaml b/test/integration/binaries/testdata/test_tarantool_link/tt/tt.yaml deleted file mode 100644 index 5abb689ef..000000000 --- a/test/integration/binaries/testdata/test_tarantool_link/tt/tt.yaml +++ /dev/null @@ -1,3 +0,0 @@ -env: - bin_dir: "./bin" - inc_dir: "./inc"