Exemple #1
0
def test_CxxHeaders_fuzzy_match(tempdir: pathlib.Path):
  """CxxHeaders() fuzzy matches the closest candidate include."""
  src = """
#include <proj/foo/foo.h>

int main(int argc, char** argv) { return 0; }
"""
  MakeFile(tempdir / "src" / "proj", "src.c", src)
  MakeFile(tempdir / "src" / "proj" / "foo", "foo.h", "#define FOO")
  MakeFile(tempdir / "bar" / "foo" / "proj" / "foo", "foo.h", "#define NOT_FOO")
  assert (
    [
      """
// [InlineHeaders] Found candidate include for: 'proj/foo/foo.h' -> \
'src/proj/foo/foo.h' (95% confidence).
#define FOO

int main(int argc, char** argv) { return 0; }
"""
    ]
    == inliners.CxxHeaders(
      tempdir,
      "src/proj/src.c",
      src,
      ["src/proj/src.c", "src/proj/foo/foo.h", "bar/foo/proj/foo/foo.h",],
    )
  )
Exemple #2
0
def test_CxxHeaders_subdir_no_includes(tempdir: pathlib.Path):
  """CxxHeaders() doesn't modify a file in a subdir without includes."""
  src = """
int main(int argc, char** argv) {
  return 0;
}
"""
  MakeFile(tempdir / "foo", "a", src)
  assert inliners.CxxHeaders(tempdir, "foo/a", src, ["foo/a"]) == [src]
Exemple #3
0
def test_CxxHeaders_no_includes(tempdir: pathlib.Path):
  """Test that CxxHeaders() doesn't modify a file without includes."""
  src = """
int main(int argc, char** argv) {
  return 0;
}
"""
  (tempdir / "a").touch()
  assert inliners.CxxHeaders(tempdir, "a", src, ["a"]) == [src]
Exemple #4
0
def test_CxxHeaders_no_match(tempdir: pathlib.Path):
    """CxxHeaders() preserves an include with no match."""
    src = """
#include "foo.h"

int main(int argc, char** argv) { return 0; }
"""
    MakeFile(tempdir, 'a', src)
    assert inliners.CxxHeaders(tempdir, 'a', src, ['a']) == """
Exemple #5
0
def test_CxxHeaders_ignore_libcxx_headers(tempdir: pathlib.Path):
    """CxxHeaders() ignores libcxx headers."""
    src = """
#include <cassert>

int main(int argc, char** argv) { return 0; }
"""
    MakeFile(tempdir, 'a', src)
    # Note that the angle brackets have been re-written with quotes.
    assert inliners.CxxHeaders(tempdir, 'a', src, ['a']) == """
Exemple #6
0
def test_CxxHeaders_header_in_same_dir(tempdir: pathlib.Path):
    """CxxHeaders() inlines a file from the same directory."""
    src = """
#include "foo.h"

int main(int argc, char** argv) { return 0; }
"""
    MakeFile(tempdir, 'a', src)
    MakeFile(tempdir, 'foo.h', '#define FOO')
    assert inliners.CxxHeaders(tempdir, 'a', src, ['a', 'foo.h']) == """
Exemple #7
0
def test_CxxHeaders_header_in_same_dir(tempdir: pathlib.Path):
  """CxxHeaders() inlines a file from the same directory."""
  src = """
#include "foo.h"

int main(int argc, char** argv) { return 0; }
"""
  MakeFile(tempdir, 'a', src)
  MakeFile(tempdir, 'foo.h', '#define FOO')
  assert inliners.CxxHeaders(tempdir, 'a', src, ['a', 'foo.h']) == ["""
// [InlineHeaders] Found candidate include for: 'foo.h' -> 'foo.h' (100% confidence).
#define FOO

int main(int argc, char** argv) { return 0; }
"""]
Exemple #8
0
def test_CxxHeaders_no_match(tempdir: pathlib.Path):
  """CxxHeaders() preserves an include with no match."""
  src = """
#include "foo.h"

int main(int argc, char** argv) { return 0; }
"""
  MakeFile(tempdir, "a", src)
  assert inliners.CxxHeaders(tempdir, "a", src, ["a"]) == [
    """
// [InlineHeaders] Preserving unmatched include: 'foo.h'.
#include "foo.h"

int main(int argc, char** argv) { return 0; }
"""
  ]
Exemple #9
0
def test_CxxHeaders_ignore_libcxx_headers(tempdir: pathlib.Path):
  """CxxHeaders() ignores libcxx headers."""
  src = """
#include <cassert>

int main(int argc, char** argv) { return 0; }
"""
  MakeFile(tempdir, "a", src)
  # Note that the angle brackets have been re-written with quotes.
  assert inliners.CxxHeaders(tempdir, "a", src, ["a"]) == [
    """
// [InlineHeaders] Preserving blacklisted include: 'cassert'.
#include "cassert"

int main(int argc, char** argv) { return 0; }
"""
  ]
Exemple #10
0
def test_CxxHeaders_fuzzy_match(tempdir: pathlib.Path):
  """CxxHeaders() fuzzy matches the closest candidate include."""
  src = """
#include <proj/foo/foo.h>

int main(int argc, char** argv) { return 0; }
"""
  MakeFile(tempdir / 'src' / 'proj', 'src.c', src)
  MakeFile(tempdir / 'src' / 'proj' / 'foo', 'foo.h', '#define FOO')
  MakeFile(tempdir / 'bar' / 'foo' / 'proj' / 'foo', 'foo.h', '#define NOT_FOO')
  assert ["""
// [InlineHeaders] Found candidate include for: 'proj/foo/foo.h' -> \
'src/proj/foo/foo.h' (95% confidence).
#define FOO

int main(int argc, char** argv) { return 0; }
"""] == inliners.CxxHeaders(tempdir, 'src/proj/src.c', src, [
    'src/proj/src.c',
    'src/proj/foo/foo.h',
    'bar/foo/proj/foo/foo.h',
  ])
Exemple #11
0
def test_CxxHeaders_empty_file(tempdir: pathlib.Path):
  """Test that CxxHeaders() accepts an empty file."""
  (tempdir / "a").touch()
  assert inliners.CxxHeaders(tempdir, "a", "", ["a"]) == [""]
Exemple #12
0
def test_CxxHeaders_empty_file(tempdir: pathlib.Path):
  """Test that CxxHeaders() accepts an empty file."""
  (tempdir / 'a').touch()
  assert inliners.CxxHeaders(tempdir, 'a', '', ['a']) == ['']