aboutsummaryrefslogtreecommitdiff
path: root/xtask/tests
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-07-14 16:14:00 +0100
committerAleksey Kladov <[email protected]>2020-07-14 16:14:00 +0100
commit239a6012eb97e4ec74ad975266436d6eb4ec9bec (patch)
tree7153af51229c91857c1ec366f605a7f303ec74c8 /xtask/tests
parent139214d8ca9b42a3966b45decd820d11cc056714 (diff)
Check licenses
Diffstat (limited to 'xtask/tests')
-rw-r--r--xtask/tests/tidy.rs41
1 files changed, 40 insertions, 1 deletions
diff --git a/xtask/tests/tidy.rs b/xtask/tests/tidy.rs
index fcfad609d..72088e414 100644
--- a/xtask/tests/tidy.rs
+++ b/xtask/tests/tidy.rs
@@ -5,7 +5,7 @@ use std::{
5 5
6use xtask::{ 6use xtask::{
7 codegen::{self, Mode}, 7 codegen::{self, Mode},
8 not_bash::fs2, 8 not_bash::{fs2, run},
9 project_root, run_rustfmt, rust_files, 9 project_root, run_rustfmt, rust_files,
10}; 10};
11 11
@@ -49,6 +49,45 @@ fn rust_files_are_tidy() {
49 tidy_docs.finish(); 49 tidy_docs.finish();
50} 50}
51 51
52#[test]
53fn check_licenses() {
54 let expected = "
550BSD OR MIT OR Apache-2.0
56Apache-2.0
57Apache-2.0 / MIT
58Apache-2.0 OR BSL-1.0
59Apache-2.0 OR MIT
60Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
61Apache-2.0/MIT
62BSD-2-Clause
63BSD-3-Clause
64CC0-1.0
65ISC
66MIT
67MIT / Apache-2.0
68MIT OR Apache-2.0
69MIT/Apache-2.0
70MIT/Apache-2.0 AND BSD-2-Clause
71Unlicense OR MIT
72Unlicense/MIT
73Zlib
74"
75 .lines()
76 .filter(|it| !it.is_empty())
77 .collect::<Vec<_>>();
78
79 let meta = run!("cargo metadata --format-version 1"; echo = false).unwrap();
80 let mut licenses = meta
81 .split(|c| c == ',' || c == '{' || c == '}')
82 .filter(|it| it.contains(r#""license""#))
83 .map(|it| it.trim())
84 .map(|it| it[r#""license":"#.len()..].trim_matches('"'))
85 .collect::<Vec<_>>();
86 licenses.sort();
87 licenses.dedup();
88 assert_eq!(licenses, expected);
89}
90
52fn check_todo(path: &Path, text: &str) { 91fn check_todo(path: &Path, text: &str) {
53 let need_todo = &[ 92 let need_todo = &[
54 // This file itself obviously needs to use todo (<- like this!). 93 // This file itself obviously needs to use todo (<- like this!).