Mirror of BoringSSL (grpc依赖)
https://boringssl.googlesource.com/boringssl
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
// Copyright (c) 2018, Google Inc. |
|
// |
|
// Permission to use, copy, modify, and/or distribute this software for any |
|
// purpose with or without fee is hereby granted, provided that the above |
|
// copyright notice and this permission notice appear in all copies. |
|
// |
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY |
|
// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION |
|
// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN |
|
// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
|
|
//go:build ignore |
|
|
|
// check_filenames.go checks that filenames are unique. Some of our consumers do |
|
// not support multiple files with the same name in the same build target, even |
|
// if they are in different directories. |
|
package main |
|
|
|
import ( |
|
"fmt" |
|
"os" |
|
"path/filepath" |
|
"strings" |
|
) |
|
|
|
func isSourceFile(in string) bool { |
|
return strings.HasSuffix(in, ".c") || strings.HasSuffix(in, ".cc") |
|
} |
|
|
|
func main() { |
|
var roots = []string{ |
|
"crypto", |
|
filepath.Join("third_party", "fiat"), |
|
"ssl", |
|
} |
|
|
|
names := make(map[string]string) |
|
var foundCollisions bool |
|
for _, root := range roots { |
|
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { |
|
if err != nil { |
|
return err |
|
} |
|
if info.IsDir() { |
|
return nil |
|
} |
|
name := strings.ToLower(info.Name()) // Windows and macOS are case-insensitive. |
|
if isSourceFile(name) { |
|
if oldPath, ok := names[name]; ok { |
|
fmt.Printf("Filename collision found: %s and %s\n", path, oldPath) |
|
foundCollisions = true |
|
} else { |
|
names[name] = path |
|
} |
|
} |
|
return nil |
|
}) |
|
if err != nil { |
|
fmt.Printf("Error traversing %s: %s\n", root, err) |
|
os.Exit(1) |
|
} |
|
} |
|
if foundCollisions { |
|
os.Exit(1) |
|
} |
|
}
|
|
|