- Expand the "Name" column past 13 characters when any of the section names are longer. Current behavior is a staggard output instead of a nice table if a single name is longer.
- Only print the required number of hex chars for addresses (i.e. 8 characters for 32-bit, 16 characters for 64-bit)
- Fix trailing spaces
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/test/tools/llvm-objdump/section-headers-address-width.test | ||
|---|---|---|
| 10 ↗ | (On Diff #224163) | I wonder, should we be able to shrink it too? Something like: Instead of a current (if I understand it right) |
| 37 ↗ | (On Diff #224163) | nit: We are often reducing the identation to a single space after the longest tag. Just like you have for FileHeader |
| 38 ↗ | (On Diff #224163) | nit: you can remove '...' |
| llvm/test/tools/llvm-objdump/section-headers-name-width.test | ||
| 2 ↗ | (On Diff #224163) | nit: missing empty line after comment. |
| 4 ↗ | (On Diff #224163) | You are not using --show-lma it seems? I.e. I am not sure why do you need this test. |
| 16 ↗ | (On Diff #224163) | nit: We often add a short comment for each test in addition to a file comment. |
| llvm/test/tools/llvm-objdump/section-headers-spacing.test | ||
| 1 ↗ | (On Diff #224163) | What do you think about combining these tests you have here into one that |
| llvm/tools/llvm-objdump/llvm-objdump.cpp | ||
| 1653 | getMaxSectionNameWidth? | |
| 1694 | May be I'd try to avoid using an additional vector and algorithm here and just: std::string Type = Section.isText() ? "TEXT" : ""; if (Section.isData()) Type += Type.empty() ? "DATA" : " DATA"; if (Section.isBSS()) Type += Type.empty() ? "BSS" : " BSS"; | |
| llvm/test/tools/llvm-objdump/section-headers-address-width.test | ||
|---|---|---|
| 10 ↗ | (On Diff #224163) | 13 is chosen to make the output match GNU objdump. Having a cutoff (not necessarily 13, but any number around there) also makes the formatting stable for objects with regular-length section names. |
| llvm/test/tools/llvm-objdump/section-headers-name-width.test | ||
| 4 ↗ | (On Diff #224163) | Added a comment -- the reason is just that it goes down a different code path, e.g. would catch a bad implementation like: if (ShowLMA)
outs() << "Name " << ... // Oops, didn't use left_justify
else
outs() << left_justify("Name", NameWidth) << ... |
| llvm/test/tools/llvm-objdump/section-headers-spacing.test | ||
| 1 ↗ | (On Diff #224163) | I started out with one test file, but found it to be a collection of somewhat unrelated things -- e.g. name column width and 32 vs 64 bit column widths are different features. So I think it's better to have more focused test files. It's a slightly personal preference though. |
| llvm/tools/llvm-objdump/llvm-objdump.cpp | ||
| 1694 | I think the lack of using an algorithm is why there was odd trailing whitespace before, although I agree it would be great if this could be more succinct... | |
- Remove yaml ... separators
- Whitespace changes
- Add more test comments
- Rename to getMaxSectionNameWidth
- Fix yaml spacing
- Remove some unnecessary yaml fields
| llvm/test/tools/llvm-objdump/section-headers-spacing.test | ||
|---|---|---|
| 1 ↗ | (On Diff #224163) | We often combine tests by a feature. I.e. test that checks the "-h" output might contain everything related to "-h" at once. Sometimes we do a split to make a test that contain only a error/warnings checks (if there are too many of them) or a particular set of tests that are very different. It is not a huge problem, but might be interesting what others think about this too though. |
| llvm/tools/llvm-objdump/llvm-objdump.cpp | ||
| 1694 | But does my version has a trailing whitespace issue? I think no. | |
- Merge tests
- Avoid llvm::join() call
| llvm/test/tools/llvm-objdump/section-headers-spacing.test | ||
|---|---|---|
| 1 ↗ | (On Diff #224163) | I don't have that strong of preference either, so merged. My only concern is now it's on the larger end of test sizes (7th of all objdump tests per find llvm/test/tools/llvm-objdump/ -name '*.test' | xargs wc -l | sort -nr | tail +2 | head -10), but it's still not excessively long. |
| llvm/test/tools/llvm-objdump/section-headers.test | ||
|---|---|---|
| 7 | No need to change this, but rather than using {{^}} and {{$}} you could have used --match-full-lines instead. Combined with --strict-whitespace, this will ensure that the line checked matches exactly the specified string. The downside is the lack of a space after the FileCheck pattern name, but you can solve that with additional spacing: # WHITESPACE:Sections: # WHITESPACE-NEXT:Idx Name or (I think, though not tested): # WHITESPACE :Sections: # WHITESPACE-NEXT:Idx Name | |
No need to change this, but rather than using {{^}} and {{$}} you could have used --match-full-lines instead. Combined with --strict-whitespace, this will ensure that the line checked matches exactly the specified string. The downside is the lack of a space after the FileCheck pattern name, but you can solve that with additional spacing:
or (I think, though not tested):