mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-17 10:35:11 +00:00
df2ac7aaeb
This adds an environment variable STVERSIONEXTRA that, when set, gets added to the version information in the API and GUI. The purpose of all this is to be able to communicate something about the bundling or packaging, through the log & GUI and the end user, to the potential person supporting it -- i.e., us. :) A wrapper can set this variable to indicate that Syncthing is being run via `SyncTrayzor`, `Syncthing-macOS`, etc., and thus indicate to the end user that the GUI they are looking at is perhaps not the only source of truth and management for this instance.
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
// Copyright (C) 2019 The Syncthing Authors.
|
|
//
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
// You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
package build
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestAllowedVersions(t *testing.T) {
|
|
testcases := []struct {
|
|
ver string
|
|
allowed bool
|
|
}{
|
|
{"v0.13.0", true},
|
|
{"v0.12.11+22-gabcdef0", true},
|
|
{"v0.13.0-beta0", true},
|
|
{"v0.13.0-beta47", true},
|
|
{"v0.13.0-beta47+1-gabcdef0", true},
|
|
{"v0.13.0-beta.0", true},
|
|
{"v0.13.0-beta.47", true},
|
|
{"v0.13.0-beta.0+1-gabcdef0", true},
|
|
{"v0.13.0-beta.47+1-gabcdef0", true},
|
|
{"v0.13.0-some-weird-but-allowed-tag", true},
|
|
{"v0.13.0-allowed.to.do.this", true},
|
|
{"v0.13.0+not.allowed.to.do.this", false},
|
|
}
|
|
|
|
for i, c := range testcases {
|
|
if allowed := allowedVersionExp.MatchString(c.ver); allowed != c.allowed {
|
|
t.Errorf("%d: incorrect result %v != %v for %q", i, allowed, c.allowed, c.ver)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilterString(t *testing.T) {
|
|
cases := []struct {
|
|
input string
|
|
filter string
|
|
output string
|
|
}{
|
|
{"abcba", "abc", "abcba"},
|
|
{"abcba", "ab", "abba"},
|
|
{"abcba", "c", "c"},
|
|
{"abcba", "!", ""},
|
|
{"Foo (v1.5)", versionExtraAllowedChars, "Foo v1.5"},
|
|
}
|
|
|
|
for i, c := range cases {
|
|
if out := filterString(c.input, c.filter); out != c.output {
|
|
t.Errorf("%d: %q != %q", i, out, c.output)
|
|
}
|
|
}
|
|
}
|