5376: Check licenses r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2020-07-14 15:14:29 +00:00 committed by GitHub
commit 5d17dfee2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 4 deletions

View File

@ -20,7 +20,7 @@
use crate::{
codegen::Mode,
not_bash::{fs2, pushd, pushenv, rm_rf, run},
not_bash::{fs2, pushd, pushenv, rm_rf},
};
pub use anyhow::{bail, Context as _, Result};

View File

@ -54,7 +54,8 @@ pub fn create_dir_all<P: AsRef<Path>>(path: P) -> Result<()> {
}
}
macro_rules! _run {
#[macro_export]
macro_rules! run {
($($expr:expr),*) => {
run!($($expr),*; echo = true)
};
@ -65,7 +66,7 @@ macro_rules! _run {
$crate::not_bash::run_process(format!($($expr),*), false, Some($stdin))
};
}
pub(crate) use _run as run;
pub use crate::run;
pub struct Pushd {
_p: (),

View File

@ -5,7 +5,7 @@
use xtask::{
codegen::{self, Mode},
not_bash::fs2,
not_bash::{fs2, run},
project_root, run_rustfmt, rust_files,
};
@ -49,6 +49,45 @@ fn rust_files_are_tidy() {
tidy_docs.finish();
}
#[test]
fn check_licenses() {
let expected = "
0BSD OR MIT OR Apache-2.0
Apache-2.0
Apache-2.0 / MIT
Apache-2.0 OR BSL-1.0
Apache-2.0 OR MIT
Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
Apache-2.0/MIT
BSD-2-Clause
BSD-3-Clause
CC0-1.0
ISC
MIT
MIT / Apache-2.0
MIT OR Apache-2.0
MIT/Apache-2.0
MIT/Apache-2.0 AND BSD-2-Clause
Unlicense OR MIT
Unlicense/MIT
Zlib
"
.lines()
.filter(|it| !it.is_empty())
.collect::<Vec<_>>();
let meta = run!("cargo metadata --format-version 1"; echo = false).unwrap();
let mut licenses = meta
.split(|c| c == ',' || c == '{' || c == '}')
.filter(|it| it.contains(r#""license""#))
.map(|it| it.trim())
.map(|it| it[r#""license":"#.len()..].trim_matches('"'))
.collect::<Vec<_>>();
licenses.sort();
licenses.dedup();
assert_eq!(licenses, expected);
}
fn check_todo(path: &Path, text: &str) {
let need_todo = &[
// This file itself obviously needs to use todo (<- like this!).