From 7bcf1af6e55803baf431d9c4525aec294c2a3c1a Mon Sep 17 00:00:00 2001 From: Michael Marshall Date: Fri, 28 Oct 2022 14:30:42 -0500 Subject: [PATCH] Revert "Remove unused license test file" This reverts commit bcbc674092bf2cf5ad93db181a9bbeb75406fc49. --- license_test.go | 114 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 license_test.go diff --git a/license_test.go b/license_test.go new file mode 100644 index 0000000..54ae128 --- /dev/null +++ b/license_test.go @@ -0,0 +1,114 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 main + +import ( + "io/ioutil" + "os" + "path/filepath" + "regexp" + "testing" +) + +var goFileCheck = regexp.MustCompile(`// Licensed to the Apache Software Foundation \(ASF\) under one +// or more contributor license agreements\. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership\. The ASF licenses this file +// to you 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\. + +`) + +var otherCheck = regexp.MustCompile(`# +# Licensed to the Apache Software Foundation \(ASF\) under one +# or more contributor license agreements\. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership\. The ASF licenses this file +# to you 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\. +# +`) + +var skip = map[string]bool{} + +func TestLicense(t *testing.T) { + err := filepath.Walk(".", func(path string, fi os.FileInfo, err error) error { + if skip[path] { + return nil + } + + if err != nil { + return err + } + + switch filepath.Ext(path) { + case ".go": + src, err := ioutil.ReadFile(path) + if err != nil { + return nil + } + + // Find license + if !goFileCheck.Match(src) { + t.Errorf("%v: license header not present", path) + return nil + } + case ".yaml": + fallthrough + case ".conf": + src, err := ioutil.ReadFile(path) + if err != nil { + return nil + } + + // Find license + if !otherCheck.Match(src) { + t.Errorf("%v: license header not present", path) + return nil + } + + default: + return nil + } + + return nil + }) + if err != nil { + t.Fatal(err) + } +}