Logan Chien | 031d2b3 | 2018-07-26 00:19:50 +0800 | [diff] [blame] | 1 | // Copyright 2018 Google Inc. All rights reserved. |
| 2 | // |
| 3 | // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | // you may not use this file except in compliance with the License. |
| 5 | // You may obtain a copy of the License at |
| 6 | // |
| 7 | // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | // |
| 9 | // Unless required by applicable law or agreed to in writing, software |
| 10 | // distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | // See the License for the specific language governing permissions and |
| 13 | // limitations under the License. |
| 14 | |
| 15 | package cc |
| 16 | |
| 17 | import ( |
| 18 | "testing" |
| 19 | ) |
| 20 | |
| 21 | func TestSplitFileExt(t *testing.T) { |
| 22 | t.Run("soname with version", func(t *testing.T) { |
| 23 | root, suffix, ext := splitFileExt("libtest.so.1.0.30") |
| 24 | expected := "libtest" |
| 25 | if root != expected { |
| 26 | t.Errorf("root should be %q but got %q", expected, root) |
| 27 | } |
| 28 | expected = ".so.1.0.30" |
| 29 | if suffix != expected { |
| 30 | t.Errorf("suffix should be %q but got %q", expected, suffix) |
| 31 | } |
| 32 | expected = ".so" |
| 33 | if ext != expected { |
| 34 | t.Errorf("ext should be %q but got %q", expected, ext) |
| 35 | } |
| 36 | }) |
| 37 | |
Logan Chien | e4d5a6c | 2018-09-26 10:49:05 +0800 | [diff] [blame] | 38 | t.Run("soname with svn version", func(t *testing.T) { |
| 39 | root, suffix, ext := splitFileExt("libtest.so.1svn") |
| 40 | expected := "libtest" |
| 41 | if root != expected { |
| 42 | t.Errorf("root should be %q but got %q", expected, root) |
| 43 | } |
| 44 | expected = ".so.1svn" |
| 45 | if suffix != expected { |
| 46 | t.Errorf("suffix should be %q but got %q", expected, suffix) |
| 47 | } |
| 48 | expected = ".so" |
| 49 | if ext != expected { |
| 50 | t.Errorf("ext should be %q but got %q", expected, ext) |
| 51 | } |
| 52 | }) |
| 53 | |
Logan Chien | 031d2b3 | 2018-07-26 00:19:50 +0800 | [diff] [blame] | 54 | t.Run("version numbers in the middle should be ignored", func(t *testing.T) { |
| 55 | root, suffix, ext := splitFileExt("libtest.1.0.30.so") |
| 56 | expected := "libtest.1.0.30" |
| 57 | if root != expected { |
| 58 | t.Errorf("root should be %q but got %q", expected, root) |
| 59 | } |
| 60 | expected = ".so" |
| 61 | if suffix != expected { |
| 62 | t.Errorf("suffix should be %q but got %q", expected, suffix) |
| 63 | } |
| 64 | expected = ".so" |
| 65 | if ext != expected { |
| 66 | t.Errorf("ext should be %q but got %q", expected, ext) |
| 67 | } |
| 68 | }) |
| 69 | |
| 70 | t.Run("no known file extension", func(t *testing.T) { |
| 71 | root, suffix, ext := splitFileExt("test.exe") |
| 72 | expected := "test" |
| 73 | if root != expected { |
| 74 | t.Errorf("root should be %q but got %q", expected, root) |
| 75 | } |
| 76 | expected = ".exe" |
| 77 | if suffix != expected { |
| 78 | t.Errorf("suffix should be %q but got %q", expected, suffix) |
| 79 | } |
| 80 | if ext != expected { |
| 81 | t.Errorf("ext should be %q but got %q", expected, ext) |
| 82 | } |
| 83 | }) |
| 84 | } |