Re-apply: Add python tool to dump and construct header mapsHeader maps are binary files used by Xcode, which are used to mapheader names or paths to other locations. Clang has support forthose si
Re-apply: Add python tool to dump and construct header mapsHeader maps are binary files used by Xcode, which are used to mapheader names or paths to other locations. Clang has support forthose since its inception, but there's not a lot of header maptesting around.Since it's a binary format, testing becomes pretty much brittleand its hard to even know what's inside if you don't have theappropriate tools.Add a python based tool that allows creating and dumping headermaps based on a json description of those. While here, rewritetests to use the tool and remove the binary files from the tree.This tool was initially written by Daniel Dunbar.Thanks to Stella Stamenova for helping make this work on Windows.Differential Revision: https://reviews.llvm.org/D46485rdar://problem/39994722llvm-svn: 335295
show more ...
Revert "Add python tool to dump and construct header maps"This reverts commit fcfa2dd517ec1a6045a81e8247e346d630a22618.Broke bots:http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/1
Revert "Add python tool to dump and construct header maps"This reverts commit fcfa2dd517ec1a6045a81e8247e346d630a22618.Broke bots:http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/11315http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/10411/steps/test-check-all/logs/stdiollvm-svn: 335196
Add python tool to dump and construct header mapsHeader maps are binary files used by Xcode, which are used to mapheader names or paths to other locations. Clang has support forthose since its in
Add python tool to dump and construct header mapsHeader maps are binary files used by Xcode, which are used to mapheader names or paths to other locations. Clang has support forthose since its inception, but there's not a lot of header maptesting around.Since it's a binary format, testing becomes pretty much brittleand its hard to even know what's inside if you don't have theappropriate tools.Add a python based tool that allows creating and dumping headermaps based on a json description of those. While here, rewritetests to use the tool and remove the binary files from the tree.This tool was initially written by Daniel Dunbar.Differential Revision: https://reviews.llvm.org/D46485rdar://problem/39994722llvm-svn: 335177
Force a header file input to the headermap test to have differentcontents than the header file by the same name under the system headersearch root. Surprisingly, this is required to get the test to
Force a header file input to the headermap test to have differentcontents than the header file by the same name under the system headersearch root. Surprisingly, this is required to get the test to pass onsome systems.So, it turns out that there exist filesystems in the world which uniquethe inode of all files based on their contents. This results in twofiles with the same contents at different paths suddenly having the sameinode. This doesn't actually cause any problems in practice as thecontents are the same, and the path used to access the files are thesame. However, it can cause tests like this one to be more brittlebecause the file manager ends up de-duplicating the file entries byinode. We don't have any other really easy ways to observe the behaviorshift because the whole point is that the #include written in the sourcecode doesn't contain the information -- instead it is contained in theheader map.If folks have other solutions they would prefer, I'm more than happy towork on them, but this seems a reasonable way to ensure that the test inquestion exercises the code it wants to exercise.llvm-svn: 205149
[HeaderSearch] Make sure we clear the mapped name from the LookupFileCacheInfo when we reset the start point.rdar://16462455llvm-svn: 205071