fix installing multiple packages #58
| @@ -100,11 +100,11 @@ func e2eSpawn(runnable e2e.Runnable, command e2e.Command, timeout time.Duration, | ||||
|  | ||||
| var ALL_SYSTEMS []string = []string{ | ||||
| 	"ubuntu-24.04", | ||||
| 	"alt-sisyphus", | ||||
| 	"archlinux", | ||||
| 	//"alpine", | ||||
| 	"opensuse-leap", | ||||
| 	"redos-8", | ||||
| 	// "alt-sisyphus", | ||||
| 	// "archlinux", | ||||
| 	// "alpine", | ||||
| 	// "opensuse-leap", | ||||
| 	// "redos-8", | ||||
| } | ||||
|  | ||||
| var COMMON_SYSTEMS []string = []string{ | ||||
| @@ -155,6 +155,7 @@ func dockerMultipleRun(t *testing.T, name string, ids []string, f func(t *testin | ||||
| 						Volumes: []string{ | ||||
| 							"./alr:/usr/bin/alr", | ||||
| 						}, | ||||
| 						Privileged: true, | ||||
| 					}, | ||||
| 				) | ||||
| 				assert.NoError(t, e2e.StartAndWaitReady(runnable)) | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| FROM ubuntu:24.10 | ||||
| RUN apt update && apt install -y ca-certificates | ||||
| RUN useradd -m -s /bin/bash alr-user | ||||
| RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates sudo | ||||
| RUN useradd -m -s /bin/bash alr-user && \ | ||||
|     echo "alr-user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/alr-user && \ | ||||
|     chmod 0440 /etc/sudoers.d/alr-user | ||||
| USER alr-user | ||||
| ENTRYPOINT ["tail", "-f", "/dev/null"] | ||||
							
								
								
									
										55
									
								
								e2e-tests/issue_50_install_multiple_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								e2e-tests/issue_50_install_multiple_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| // ALR - Any Linux Repository | ||||
| // Copyright (C) 2025 Евгений Храмов | ||||
| // | ||||
| // This program is free software: you can redistribute it and/or modify | ||||
| // it under the terms of the GNU General Public License as published by | ||||
| // the Free Software Foundation, either version 3 of the License, or | ||||
| // (at your option) any later version. | ||||
| // | ||||
| // This program is distributed in the hope that it will be useful, | ||||
| // but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| // GNU General Public License for more details. | ||||
| // | ||||
| // You should have received a copy of the GNU General Public License | ||||
| // along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| //go:build e2e | ||||
|  | ||||
| package e2etests_test | ||||
|  | ||||
| import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/alecthomas/assert/v2" | ||||
| 	"github.com/efficientgo/e2e" | ||||
| ) | ||||
|  | ||||
| func TestE2EIssue50InstallMultiple(t *testing.T) { | ||||
| 	dockerMultipleRun( | ||||
| 		t, | ||||
| 		"issue-50-install-multiple", | ||||
| 		COMMON_SYSTEMS, | ||||
| 		func(t *testing.T, r e2e.Runnable) { | ||||
| 			err := r.Exec(e2e.NewCommand( | ||||
| 				"alr", | ||||
| 				"addrepo", | ||||
| 				"--name", | ||||
| 				"alr-repo", | ||||
| 				"--url", | ||||
| 				"https://gitea.plemya-x.ru/Maks1mS/repo-for-tests.git", | ||||
| 			)) | ||||
| 			assert.NoError(t, err) | ||||
|  | ||||
| 			err = r.Exec(e2e.NewCommand( | ||||
| 				"alr", "in", "foo-pkg", "bar-pkg", | ||||
| 			)) | ||||
| 			assert.NoError(t, err) | ||||
|  | ||||
| 			err = r.Exec(e2e.NewCommand("cat", "/opt/foo")) | ||||
| 			assert.NoError(t, err) | ||||
| 			err = r.Exec(e2e.NewCommand("cat", "/opt/bar")) | ||||
| 			assert.NoError(t, err) | ||||
| 		}, | ||||
| 	) | ||||
| } | ||||
| @@ -375,39 +375,39 @@ msgstr "" | ||||
| msgid "Installing build dependencies" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:517 | ||||
| #: pkg/build/build.go:521 | ||||
| msgid "Installing dependencies" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:598 | ||||
| #: pkg/build/build.go:602 | ||||
| msgid "Would you like to remove the build dependencies?" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:661 | ||||
| #: pkg/build/build.go:665 | ||||
| msgid "Executing prepare()" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:671 | ||||
| #: pkg/build/build.go:675 | ||||
| msgid "Executing build()" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:701 pkg/build/build.go:721 | ||||
| #: pkg/build/build.go:705 pkg/build/build.go:725 | ||||
| msgid "Executing %s()" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:780 | ||||
| #: pkg/build/build.go:784 | ||||
| msgid "Error installing native packages" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:804 | ||||
| #: pkg/build/build.go:808 | ||||
| msgid "Error installing package" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:863 | ||||
| #: pkg/build/build.go:867 | ||||
| msgid "AutoProv is not implemented for this package format, so it's skipped" | ||||
| msgstr "" | ||||
|  | ||||
| #: pkg/build/build.go:874 | ||||
| #: pkg/build/build.go:878 | ||||
| msgid "AutoReq is not implemented for this package format, so it's skipped" | ||||
| msgstr "" | ||||
|  | ||||
|   | ||||
| @@ -389,40 +389,40 @@ msgstr "Этот пакет уже установлен" | ||||
| msgid "Installing build dependencies" | ||||
| msgstr "Установка зависимостей сборки" | ||||
|  | ||||
| #: pkg/build/build.go:517 | ||||
| #: pkg/build/build.go:521 | ||||
| msgid "Installing dependencies" | ||||
| msgstr "Установка зависимостей" | ||||
|  | ||||
| #: pkg/build/build.go:598 | ||||
| #: pkg/build/build.go:602 | ||||
| msgid "Would you like to remove the build dependencies?" | ||||
| msgstr "Хотели бы вы удалить зависимости сборки?" | ||||
|  | ||||
| #: pkg/build/build.go:661 | ||||
| #: pkg/build/build.go:665 | ||||
| msgid "Executing prepare()" | ||||
| msgstr "Исполнение prepare()" | ||||
|  | ||||
| #: pkg/build/build.go:671 | ||||
| #: pkg/build/build.go:675 | ||||
| msgid "Executing build()" | ||||
| msgstr "Исполнение build()" | ||||
|  | ||||
| #: pkg/build/build.go:701 pkg/build/build.go:721 | ||||
| #: pkg/build/build.go:705 pkg/build/build.go:725 | ||||
| msgid "Executing %s()" | ||||
| msgstr "Исполнение %s()" | ||||
|  | ||||
| #: pkg/build/build.go:780 | ||||
| #: pkg/build/build.go:784 | ||||
| msgid "Error installing native packages" | ||||
| msgstr "Ошибка при установке нативных пакетов" | ||||
|  | ||||
| #: pkg/build/build.go:804 | ||||
| #: pkg/build/build.go:808 | ||||
| msgid "Error installing package" | ||||
| msgstr "Ошибка при установке пакета" | ||||
|  | ||||
| #: pkg/build/build.go:863 | ||||
| #: pkg/build/build.go:867 | ||||
| msgid "AutoProv is not implemented for this package format, so it's skipped" | ||||
| msgstr "" | ||||
| "AutoProv не реализовано для этого формата пакета, поэтому будет пропущено" | ||||
|  | ||||
| #: pkg/build/build.go:874 | ||||
| #: pkg/build/build.go:878 | ||||
| msgid "AutoReq is not implemented for this package format, so it's skipped" | ||||
| msgstr "" | ||||
| "AutoReq не реализовано для этого формата пакета, поэтому будет пропущено" | ||||
|   | ||||
| @@ -489,13 +489,17 @@ func (b *Builder) getBuildersForPackages(pkgs []db.Package) []*Builder { | ||||
| 	} | ||||
| 	pkgsMap := make(map[string]*item) | ||||
| 	for _, pkg := range pkgs { | ||||
| 		if pkgsMap[pkg.BasePkgName] == nil { | ||||
| 			pkgsMap[pkg.BasePkgName] = &item{ | ||||
| 		name := pkg.BasePkgName | ||||
| 		if name == "" { | ||||
| 			name = pkg.Name | ||||
| 		} | ||||
| 		if pkgsMap[name] == nil { | ||||
| 			pkgsMap[name] = &item{ | ||||
| 				pkg: &pkg, | ||||
| 			} | ||||
| 		} | ||||
| 		pkgsMap[pkg.BasePkgName].packages = append( | ||||
| 			pkgsMap[pkg.BasePkgName].packages, | ||||
| 		pkgsMap[name].packages = append( | ||||
| 			pkgsMap[name].packages, | ||||
| 			pkg.Name, | ||||
| 		) | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user