|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- // Copyright 2016 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
-
- package cloud
-
- import (
- "bytes"
- "io/ioutil"
- "os"
- "path/filepath"
- "strings"
- "testing"
- )
-
- var sentinels = []string{
- "Copyright",
- "Google",
- `Licensed under the Apache License, Version 2.0 (the "License");`,
- }
-
- func TestLicense(t *testing.T) {
- t.Parallel()
- err := filepath.Walk(".", func(path string, fi os.FileInfo, err error) error {
- if err != nil {
- return err
- }
-
- if ext := filepath.Ext(path); ext != ".go" && ext != ".proto" {
- return nil
- }
- if strings.HasSuffix(path, ".pb.go") {
- // .pb.go files are generated from the proto files.
- // .proto files must have license headers.
- return nil
- }
- if path == "bigtable/cmd/cbt/cbtdoc.go" {
- // Automatically generated.
- return nil
- }
- if path == "cmd/go-cloud-debug-agent/internal/debug/elf/elf.go" {
- // BSD license, which is compatible, is embedded in the file.
- return nil
- }
- src, err := ioutil.ReadFile(path)
- if err != nil {
- return nil
- }
- src = src[:300] // Ensure all of the sentinel values are at the top of the file.
-
- // Find license
- for _, sentinel := range sentinels {
- if !bytes.Contains(src, []byte(sentinel)) {
- t.Errorf("%v: license header not present. want %q", path, sentinel)
- return nil
- }
- }
-
- return nil
- })
- if err != nil {
- t.Fatal(err)
- }
- }
|