diff options
author | Anna Liao <aliao22@gmail.com> | 2017-08-20 16:26:59 -0600 |
---|---|---|
committer | Nick Fitzgerald <fitzgen@gmail.com> | 2017-08-21 13:34:58 -0700 |
commit | eeec4bd2a197bb0ed71419f0700a93d418f6899a (patch) | |
tree | 5d62c892412d068e7e678674fb41528f8d423ce5 /tests/tests.rs | |
parent | 79447a288fe4ae3c9432e61d60818b5a9b526b15 (diff) |
Rename `TypeKind::Named` to `TypeKind::TypeParam`
Also renames a bunch of other things referring to named types to refer to type
parameters.
Fixes #915
Diffstat (limited to 'tests/tests.rs')
-rw-r--r-- | tests/tests.rs | 124 |
1 files changed, 78 insertions, 46 deletions
diff --git a/tests/tests.rs b/tests/tests.rs index cf04af50..01f46ac6 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -8,15 +8,18 @@ use std::fs; use std::io::{BufRead, BufReader, Error, ErrorKind, Read, Write}; use std::path::PathBuf; -#[path="../src/options.rs"] +#[path = "../src/options.rs"] mod options; use options::builder_from_flags; -fn compare_generated_header(header: &PathBuf, - builder: Builder) - -> Result<(), Error> { - let file_name = try!(header.file_name() - .ok_or(Error::new(ErrorKind::Other, "spawn_bindgen expects a file"))); +fn compare_generated_header( + header: &PathBuf, + builder: Builder, +) -> Result<(), Error> { + let file_name = try!(header.file_name().ok_or(Error::new( + ErrorKind::Other, + "spawn_bindgen expects a file", + ))); let mut expected = PathBuf::from(header); expected.pop(); @@ -40,7 +43,7 @@ fn compare_generated_header(header: &PathBuf, expected.push("libclang-3.8"); } else { match clang_version().parsed { - None => {}, + None => {} Some(version) => { let (maj, min) = version; let version_str = if maj >= 4 { @@ -56,10 +59,12 @@ fn compare_generated_header(header: &PathBuf, expected.push(file_name); if !expected.is_file() { - panic!("missing test expectation file and/or 'testing_only_libclang_$VERSION' \ + panic!( + "missing test expectation file and/or 'testing_only_libclang_$VERSION' \ feature for header '{}'; looking for expectation file at '{}'", - header.display(), - expected.display()); + header.display(), + expected.display() + ); } } @@ -80,8 +85,10 @@ fn compare_generated_header(header: &PathBuf, if !output.is_empty() { return Ok(()); } - return Err(Error::new(ErrorKind::Other, - "Something's gone really wrong!")); + return Err(Error::new( + ErrorKind::Other, + "Something's gone really wrong!", + )); } println!("diff expected generated"); @@ -126,13 +133,15 @@ fn create_bindgen_builder(header: &PathBuf) -> Result<Option<Builder>, Error> { flags.extend(extra_flags.into_iter()); } else if line.contains("bindgen-osx-only") { let prepend_flags = ["--raw-line", "#![cfg(target_os=\"macos\")]"]; - flags = prepend_flags.into_iter() + flags = prepend_flags + .into_iter() .map(ToString::to_string) .chain(flags) .collect(); } else if line.contains("bindgen-generate-bindings-on-linux-only") && - !cfg!(target_os = "linux") { - return Ok(None); + !cfg!(target_os = "linux") + { + return Ok(None); } } @@ -155,25 +164,29 @@ fn create_bindgen_builder(header: &PathBuf) -> Result<Option<Builder>, Error> { // - add header filename as 1st element // - prepend raw lines so they're in the right order for expected output // - append the test header's bindgen flags - let header_str = try!(header.to_str() - .ok_or(Error::new(ErrorKind::Other, "Invalid header file name"))); - - let prepend = ["bindgen", - "--with-derive-default", - header_str, - "--raw-line", - "", - "--raw-line", - "#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]", - "--raw-line", - ""]; - - let args = prepend.into_iter() - .map(ToString::to_string) - .chain(flags.into_iter()); - - builder_from_flags(args) - .map(|(builder, _, _)| Some(builder)) + let header_str = try!(header.to_str().ok_or(Error::new( + ErrorKind::Other, + "Invalid header file name", + ))); + + let prepend = [ + "bindgen", + "--with-derive-default", + header_str, + "--raw-line", + "", + "--raw-line", + "#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]", + "--raw-line", + "", + ]; + + let args = prepend.into_iter().map(ToString::to_string).chain( + flags + .into_iter(), + ); + + builder_from_flags(args).map(|(builder, _, _)| Some(builder)) } macro_rules! test_header { @@ -207,24 +220,33 @@ fn test_header_contents() { .generate() .unwrap() .to_string(); - assert_eq!(bindings, "/* automatically generated by rust-bindgen */ + assert_eq!( + bindings, + "/* automatically generated by rust-bindgen */ extern \"C\" { pub fn foo(a: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; } -"); +" + ); } #[test] fn test_multiple_header_calls_in_builder() { let actual = builder() - .header(concat!(env!("CARGO_MANIFEST_DIR"), "/tests/headers/func_ptr.h")) + .header(concat!( + env!("CARGO_MANIFEST_DIR"), + "/tests/headers/func_ptr.h" + )) .header(concat!(env!("CARGO_MANIFEST_DIR"), "/tests/headers/char.h")) .generate() .unwrap() .to_string(); - let expected = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/tests/expectations/tests/test_multiple_header_calls_in_builder.rs")); + let expected = include_str!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/tests/expectations/tests/test_multiple_header_calls_in_builder.rs" + )); if actual != expected { println!("Generated bindings differ from expected!"); @@ -247,19 +269,25 @@ fn test_multiple_header_calls_in_builder() { #[cfg(not(target_os = "windows"))] fn no_system_header_includes() { use std::process::Command; - assert!(Command::new("./ci/no-includes.sh") + assert!( + Command::new("./ci/no-includes.sh") .current_dir(env!("CARGO_MANIFEST_DIR")) .spawn() .expect("should spawn ./ci/no-includes.sh OK") .wait() .expect("should wait for ./ci/no-includes OK") - .success()); + .success() + ); } #[test] fn dump_preprocessed_input() { - let arg_keyword = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/headers/arg_keyword.hpp"); - let empty_layout = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/headers/cpp-empty-layout.hpp"); + let arg_keyword = + concat!(env!("CARGO_MANIFEST_DIR"), "/tests/headers/arg_keyword.hpp"); + let empty_layout = concat!( + env!("CARGO_MANIFEST_DIR"), + "/tests/headers/cpp-empty-layout.hpp" + ); builder() .header(arg_keyword) @@ -278,8 +306,12 @@ fn dump_preprocessed_input() { let arg_keyword = slurp(arg_keyword); let empty_layout = slurp(empty_layout); - assert!(bindgen_ii.find(&arg_keyword).is_some(), - "arg_keyword.hpp is in the preprocessed file"); - assert!(bindgen_ii.find(&empty_layout).is_some(), - "cpp-empty-layout.hpp is in the preprocessed file"); + assert!( + bindgen_ii.find(&arg_keyword).is_some(), + "arg_keyword.hpp is in the preprocessed file" + ); + assert!( + bindgen_ii.find(&empty_layout).is_some(), + "cpp-empty-layout.hpp is in the preprocessed file" + ); } |