Roman Artemev [Tue, 25 Apr 2017 21:31:38 +0000 (14:31 -0700)]
Merge pull request #11118 from rartemev/issue_10094
Fixed netci.groove scripts to make CentOS and Ubuntu R2R jitstressregs builds worked.
William Godbe [Tue, 25 Apr 2017 19:56:08 +0000 (12:56 -0700)]
Merge pull request #11206 from wtgodbe/ContainerName
Update R2R Container Names
wtgodbe [Tue, 25 Apr 2017 19:55:37 +0000 (12:55 -0700)]
Update R2R Container Names
Roman Artemev [Tue, 25 Apr 2017 00:01:06 +0000 (17:01 -0700)]
Testing. DO NOT MERGE ME
Jonghyun Park [Tue, 25 Apr 2017 18:40:40 +0000 (03:40 +0900)]
Allow FEATURE_INTERPRETER to be enabled by command-line option (#11188)
* Allow FEATURE_INTERPRETER to be enabled by command-line option
* Set FEATURE_INTERPRETER as 0
William Godbe [Tue, 25 Apr 2017 18:29:37 +0000 (11:29 -0700)]
Merge pull request #11187 from wtgodbe/NonWindowsR2R
Enable running R2R tests in Helix on non-Windows
wtgodbe [Mon, 24 Apr 2017 20:41:42 +0000 (13:41 -0700)]
Enable running R2R tests in Helix on non-Windows
Bruce Forstall [Tue, 25 Apr 2017 18:14:27 +0000 (11:14 -0700)]
Merge pull request #11203 from mskvortsov/FixLclFld
[RyuJIT/ARM32] Update lclFld codegen
Hyung-Kyu Choi [Tue, 25 Apr 2017 17:58:22 +0000 (02:58 +0900)]
[ARM32] clang 3.9 as a default for ARM cross build (#11064)
* [ARM32] clang 3.9 as a default for ARM cross build
Use clang 3.9 as a default compiler for ARM cross build
* Both arm and armel will be built using clang 3.9 as a default
* ARM CI will use clang 3.9 as a default
* ARM pipieline build will use clang 3.9 as a default
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [ARM32] Update docs describing clang-3.9 and ARM cross build
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [ARM] Check minimum version requirement of clang for ARM cross build
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
dotnet bot [Tue, 25 Apr 2017 17:05:21 +0000 (10:05 -0700)]
Merge pull request dotnet/corert#3418 from dotnet/nmirror (#11186)
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Bruce Forstall [Tue, 25 Apr 2017 16:58:16 +0000 (09:58 -0700)]
Merge pull request #11191 from BruceForstall/FixFuncletAssert
Fix funclet begin assert
Bruce Forstall [Tue, 25 Apr 2017 15:40:26 +0000 (08:40 -0700)]
Merge pull request #11080 from BruceForstall/MeasureNoway
Add code to measure dynamic noway_assert usage
Mikhail Skvortcov [Tue, 25 Apr 2017 12:04:03 +0000 (15:04 +0300)]
RyuJIT/ARM32: Update GT_LCL_FLD codegen.
Hanjoung Lee [Tue, 25 Apr 2017 09:07:38 +0000 (18:07 +0900)]
[x86/Linux] Do not report untracked from filters (#11195)
Related Issue : #11101
Bruce Forstall [Wed, 19 Apr 2017 20:37:34 +0000 (13:37 -0700)]
Add code to measure dynamic noway_assert usage
Set COMPlus_JitMeasureNowayAssert=1 to enable measurement.
Set COMPlus_JitMeasureNowayAssertFile to a path/file to send
output to a file instead of stdout.
Code is under `#if MEASURE_NOWAY` which is enabled for DEBUG
only, though it can be manually enabled for non-DEBUG builds.
Bruce Forstall [Mon, 24 Apr 2017 18:12:14 +0000 (11:12 -0700)]
Fix funclet begin assert
Bruce Forstall [Tue, 25 Apr 2017 06:49:01 +0000 (23:49 -0700)]
Merge pull request #11196 from wateret/fix-formatting
Fix formatting fail
Bruce Forstall [Tue, 25 Apr 2017 06:31:17 +0000 (23:31 -0700)]
Merge pull request #11183 from sdmaclea/PR-FIX-11181
Fix 11181
Hyeongseok Oh [Tue, 25 Apr 2017 06:08:38 +0000 (15:08 +0900)]
[x86/Linux] Change CI docker image (#11098)
* [x86/Linux] Change CI docker image
Change CI docker image to support clang-3.9
* Update x86_ci_script.sh
change docker tag name
* Update x86_ci_script.sh
environment set correctly: ROOTFS_DIR
* Update x86_ci_script.sh
change docker image name
Hanjoung Lee [Tue, 25 Apr 2017 05:51:14 +0000 (14:51 +0900)]
Fix formatting fail
Jim Ma [Tue, 25 Apr 2017 05:40:36 +0000 (17:40 +1200)]
Ensure using the given executable path. (#10525)
* Ensure using the given executable path.
Fix the bug that corerun trying to load the executable from current directory even if the user has specified a full path of the executable.
Fix #5631
* Revert "Ensure using the given executable path."
This reverts commit
d237e6329f85132429176a0644cf6d93c9437ff4.
* Partially implemented.
* Ensure app context using correct IL file path.
Extracting simple name from the given file path and look up its value in tpa list. If the value does not equal to the given file path, we update the value with correct given file path.
Fix #5631
* Re-arrange the slashIndex to eliminate unneccessary code.
* A few performance improvement with a memory leak bug fixed.
* Added the absolute path of target assembly to tpa list.
Fix #5631
* Added the path of target assembly to tpa on Windows.
Fix #5631
Mike McLaughlin [Tue, 25 Apr 2017 00:12:36 +0000 (17:12 -0700)]
Add "createdump" command to SOS. (#11161)
Uses the createdump utility code as a library.
Changed the "-m, --micro" option to "-t, --triage".
Lots of cleanup.
Andy Ayers [Mon, 24 Apr 2017 23:42:38 +0000 (16:42 -0700)]
Merge pull request #11152 from AndyAyersMS/FixTailCallStressAssert
JIT: simple fix for the tail call stress assert
Bruce Forstall [Mon, 24 Apr 2017 23:28:08 +0000 (16:28 -0700)]
Merge pull request #11157 from mikedn/reg-encoding
Simplify emitter's RegEncoding
Bruce Forstall [Mon, 24 Apr 2017 23:02:18 +0000 (16:02 -0700)]
Merge pull request #11108 from BruceForstall/RangedForAllSuccessorIter
Use C++ ranged 'for' for AllSuccessorIter use
Bruce Forstall [Mon, 24 Apr 2017 21:28:51 +0000 (14:28 -0700)]
Merge pull request #11172 from mskvortsov/ArithOverflowChecks
[RyuJIT/ARM32] Enable arithmetic overflow checks
Russ Keldorph [Sun, 23 Apr 2017 13:42:14 +0000 (06:42 -0700)]
Support other toolsets in Win/ARM64 build
Fix 11181
Bruce Forstall [Mon, 24 Apr 2017 18:15:35 +0000 (11:15 -0700)]
Fix cmake warning about mismatched if/endif comment (#11176)
Steve MacLean [Mon, 24 Apr 2017 17:51:29 +0000 (13:51 -0400)]
Remove PAL FileAlignment restriction (#10959)
* Remove PAL FileAlignment restriction
* Address PR #10959 feedback
* Fix amd64 crossgen error
* Respond to review feedback
* Fix arm32 regression
* Prepare to remove VIRTUAL_PAGE_* from map.cpp
Also simplify previous section code
* Rename function to GetVirtualPageSize()
Sean Gillespie [Mon, 24 Apr 2017 17:44:25 +0000 (10:44 -0700)]
[Local GC] Ensure that handle creation returns null on failure instead of throwing (#11092)
* [Local GC] Ensure that handle creation returns null on failure instead of throwing
* Fix some clang pedantry about jumping past variable initialization
* Throw OOM if initialization of handle store fails
* Perform the handle OOM check in each handle helper
Sergey Andreenko [Mon, 24 Apr 2017 16:39:25 +0000 (09:39 -0700)]
do not use = {nullptr} initialization. (#11153)
It worked incorrectly on desktop.
Bruce Forstall [Mon, 24 Apr 2017 15:43:37 +0000 (08:43 -0700)]
Merge pull request #11169 from hseok-oh/ryujit/fix_11128
[ARM32/RyuJIT] Fix failure related with struct argument passing
Bruce Forstall [Mon, 24 Apr 2017 15:29:15 +0000 (08:29 -0700)]
Merge pull request #11091 from BruceForstall/BlockRefactor
Refactoring: move some BasicBlock functions to block.cpp
Mikhail Skvortcov [Mon, 24 Apr 2017 11:10:20 +0000 (14:10 +0300)]
RyuJIT/ARM32: Enable arithmetic overflow checks.
Jonghyun Park [Mon, 24 Apr 2017 10:20:38 +0000 (19:20 +0900)]
Support FEATURE_DBGIPC override (#11164)
Jonghyun Park [Mon, 24 Apr 2017 08:39:52 +0000 (17:39 +0900)]
[x86/Linux] Remove unnecessary ResumeEsp field (#11167)
Hyeongseok Oh [Mon, 24 Apr 2017 08:34:47 +0000 (17:34 +0900)]
[ARM32/RyuJIT] Fix failure related with struct argument passing
Block using NYI_ARM when struct value split between registers and stack
Fix type assign error for struct slot
Jonghyun Park [Mon, 24 Apr 2017 08:24:46 +0000 (17:24 +0900)]
[x86/Linux] Fix unmatched NESTED_END in CallEHFilterFunclet (#11163)
OmariO [Sun, 23 Apr 2017 20:35:24 +0000 (23:35 +0300)]
11106: Use RuntimeHelpers.IsReferenceOrContainsReferences in Dictionary.Remove methods (#11158)
Mike Danes [Sat, 22 Apr 2017 13:41:56 +0000 (16:41 +0300)]
Simplify emitter's RegEncoding
VC++ does't recognize that `(c ? x - 16 : x) & 7` is just `x & 7` and we end up with 5 instructions instead of 1.
Sean Gillespie [Sat, 22 Apr 2017 11:41:32 +0000 (04:41 -0700)]
Mark GetGenerationWR2 as GCStressIncompatible across all platforms (#11151)
Sean Gillespie [Sat, 22 Apr 2017 11:39:09 +0000 (04:39 -0700)]
Remove destructor from GCEvent and instead rely on the OS to clean up (#11132)
* Remove destructor from GCEvent and instead rely on the OS to clean up
* Add a comment justifying the lack of destructor
* wording: many -> all
Brian Sullivan [Sat, 22 Apr 2017 11:16:25 +0000 (04:16 -0700)]
Two improvments for LCG jump stubs (dynamic methods): (#9160)
When requesting a jump stub block for LCG, ask for a block of 4 jump stubs instead of 32
Enable caching and cache lookup for LCG jump stubs
Andy Ayers [Sat, 22 Apr 2017 00:09:07 +0000 (17:09 -0700)]
JIT: simple fix for the tail call stress assert
If class handles match, the return types are compatible, no matter
what the jit types indicate.
Addresses #10047.
Mike McLaughlin [Sat, 22 Apr 2017 00:01:01 +0000 (17:01 -0700)]
Move xplat minidump doc to botr. (#11149)
Change default minidump type to MiniDumpWithPrivateReadWriteMemory.
Remove language about uploading triage dumps.
Turn off diagnostic output.
Gaurav Khanna [Fri, 21 Apr 2017 22:06:11 +0000 (15:06 -0700)]
Move CoreCLR to Preview2 (#11146)
Andy Ayers [Fri, 21 Apr 2017 21:53:57 +0000 (14:53 -0700)]
Merge pull request #11140 from AndyAyersMS/FixRunBenchmarks
Update jit RunBenchmarks test to no longer use XPath
William Godbe [Fri, 21 Apr 2017 20:43:07 +0000 (13:43 -0700)]
Merge pull request #11148 from wtgodbe/DisableCoreMangLib
Disable DynMethodJumpStubTests test
wtgodbe [Fri, 21 Apr 2017 20:41:57 +0000 (13:41 -0700)]
Disable DynMethodJumpStubTests test
Brian Sullivan [Fri, 21 Apr 2017 20:35:25 +0000 (13:35 -0700)]
Merge pull request #11117 from briansull/zapsig-fix
ReadyToRun/Crossgen: Disable cross module generic instantiations from profile data
William Godbe [Fri, 21 Apr 2017 20:04:02 +0000 (13:04 -0700)]
Merge pull request #11147 from dotnet/ReEnableHashCodeTest
Re-enable Hashcode Test
William Godbe [Fri, 21 Apr 2017 20:03:52 +0000 (13:03 -0700)]
Re-enable Hashcode Test
William Godbe [Fri, 21 Apr 2017 19:22:40 +0000 (12:22 -0700)]
Merge pull request #11144 from wtgodbe/DisableSomeTests
Temporarily disable failing tests in Helix
wtgodbe [Fri, 21 Apr 2017 19:22:18 +0000 (12:22 -0700)]
Temporarily disable failing tests in Helix
Andy Ayers [Fri, 21 Apr 2017 18:53:00 +0000 (11:53 -0700)]
Update jit RunBenchmarks test to no longer use XPath
Rewrite to use linq-to-xml instead. Verified at least that this
can still parse the adjoining xml file. Also now able to crossgen
this test case.
Closes #11082.
William Godbe [Fri, 21 Apr 2017 18:49:11 +0000 (11:49 -0700)]
Merge pull request #11138 from wtgodbe/WrongCrossgen
Copy Runtime-specific Crossgen to Core_Root
wtgodbe [Fri, 21 Apr 2017 18:31:21 +0000 (11:31 -0700)]
Copy Runtime-specific Crossgen to Core_Root
Drew Scoggins [Fri, 21 Apr 2017 17:16:01 +0000 (02:16 +0900)]
Merge pull request #11055 from jorive/dev/xUnit-Performance-API
Improving robustness of the run-xunit-perf.cmd script.
Jonghyun Park [Fri, 21 Apr 2017 15:51:12 +0000 (00:51 +0900)]
[x86/Linux] Correctly initialize nonVolRegPtrs in LazyMachState::unwindLazyState (#10888)
Jan Kotas [Fri, 21 Apr 2017 15:44:43 +0000 (08:44 -0700)]
Mark CharEnumerator as [Serializable] (#11124)
Fixes https://github.com/dotnet/corefx/issues/18704
SaeHie Park [Fri, 21 Apr 2017 14:28:07 +0000 (23:28 +0900)]
[x86/Linux] Fix pow of tryrun (#11099)
x86/Linux has compatible math pow()
This will fix CoreFX System.Tests.MathFTests.Pow() failures
Yi Zhang (CLR) [Fri, 21 Apr 2017 09:01:40 +0000 (02:01 -0700)]
Add Marshal.GetExceptionPointers (#11125)
* Add Marshal.GetExceptionPointers
* Remove SecurityCritical
Hyeongseok Oh [Fri, 21 Apr 2017 06:13:02 +0000 (15:13 +0900)]
[ARM32/RyuJIT] Argument passing for multireg struct (#10846)
* [Linux/ARM32] Enable fgMorphMultiregStructArgs
Enable fgMorphMultiregStructArgs: morph struct argument to GT_FILED_LIST when size <= 4
Cannot handle split struct that using register and stack
* Fix formatting
Fix formatting error
* Fix typo and commit with not added file
- Fix typo
- Commit with not added file: src/jit/compiler.h
* Fix formatting and build error
* Fix comment and block using NYI macro
- Fix comment
- Block using NYI when struct passed by value can be split between registers and stack
Jonghyun Park [Fri, 21 Apr 2017 05:42:25 +0000 (14:42 +0900)]
[x86/Linux] Relax inst_JMP assert condition (#11062)
* [x86/Linux] Do NOT use exception-throwing block on ESP framed method
* Fix format error
* Relax assert condition
* Fix format error
* Revert changes in codegencommon.cpp
* Add parentheses
William Godbe [Fri, 21 Apr 2017 05:04:29 +0000 (22:04 -0700)]
Merge pull request #11024 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx to preview1-25221-01, preview1-25221-01, respectively (master)
dotnet-bot [Fri, 21 Apr 2017 02:27:34 +0000 (02:27 +0000)]
Update CoreClr, CoreFx to preview1-25221-01, preview1-25221-01, respectively
Joseph Musser [Fri, 21 Apr 2017 01:54:30 +0000 (21:54 -0400)]
Update StringBuilder.AppendJoin to approved API (#11059)
* Updated StringBuilder.AppendJoin to approved API
* Organized StringBuilder.AppendJoin overloads
* Added ThrowHelper, removed Contract.Ensures
* Inline array accesses
SaeHie Park [Fri, 21 Apr 2017 01:46:30 +0000 (10:46 +0900)]
Enable corerun to select Globalization Invariant mode (#11097)
* Enable corerun to select Globalization Invariant mode
* Support 'true' also
Gaurav Khanna [Thu, 20 Apr 2017 23:26:17 +0000 (16:26 -0700)]
Fix R2R workaround for Diasymreader (#11116)
Ben Adams [Thu, 20 Apr 2017 22:58:31 +0000 (23:58 +0100)]
Inline List.Clear (#11104)
Brian Sullivan [Thu, 20 Apr 2017 22:53:19 +0000 (15:53 -0700)]
When we have profile data we can have cross module references in our ZapSig's when building ReadyToRun images.
We should return a null TypeHandle to indicate failure so that we don't attempt to add generic types/methods
that have cross module references. (i.e. MyList<System.Guid> )
Peter Smulovics [Thu, 20 Apr 2017 22:46:39 +0000 (18:46 -0400)]
Fixing Delegate's hash code's distribution (#11019)
Delegate's GetHashCode just returns the hash code of the delegate type. For a scenario where delegates are used as keys in a dictionary, this leads to obvious performance problems. We should look at coming up with a better GetHashCode that properly factors in the target object and method, in all of the various forms a delegate can take.
William Godbe [Thu, 20 Apr 2017 22:35:26 +0000 (15:35 -0700)]
Merge pull request #11115 from wtgodbe/readytoruntests
Move readytorun tests into directory one level deeper
Aditya Mandaleeka [Thu, 20 Apr 2017 21:20:22 +0000 (14:20 -0700)]
Merge pull request #11033 from adityamandaleeka/handle_table_local_gc_store
Move handle object manipulation functions to interface
wtgodbe [Thu, 20 Apr 2017 20:49:57 +0000 (13:49 -0700)]
Move readytorun tests into directory one level deeper
Michelle McDaniel [Thu, 20 Apr 2017 20:14:54 +0000 (13:14 -0700)]
Merge pull request #11020 from adiaaida/hardenPerf
Strip quotes out of BenchviewCommitName
Aditya Mandaleeka [Thu, 20 Apr 2017 19:42:30 +0000 (12:42 -0700)]
Rename CompareAndSwap to InterlockedCompareExchange.
William Godbe [Thu, 20 Apr 2017 18:44:13 +0000 (11:44 -0700)]
Merge pull request #11086 from wtgodbe/SecurityPermissions
Add dependency on System.Security.Permissions
wtgodbe [Wed, 19 Apr 2017 23:01:03 +0000 (16:01 -0700)]
Add dependency on System.Security.Permissions
Mike McLaughlin [Thu, 20 Apr 2017 17:13:45 +0000 (10:13 -0700)]
Add the Linux minidump support documentation (#11087)
Add the Linux minidump support documentation
One minor fix to createdump.
Bruce Forstall [Tue, 18 Apr 2017 00:13:25 +0000 (17:13 -0700)]
Use C++ ranged 'for' for AllSuccessorIter use
Jonghyun Park [Thu, 20 Apr 2017 16:05:51 +0000 (01:05 +0900)]
[x86/Linux] Use CDECL as STDAPICALLTYPE (#10969)
* [x86/Linux] Use CDECL as STDAPICALLTYPE
* Use system default calling convention for internal functions
Michelle McDaniel [Mon, 17 Apr 2017 16:39:00 +0000 (09:39 -0700)]
Strip quotes out of BenchviewCommitName
When we pass the name of the pr to submission-metadata.py, we need the
name of the pr to not include quotes, or submission-metadata.py will fail
because it has the "wrong" parameters (because parts of the name are no
longer quoted). This change strips quotation marks out of the benchview
commit name to harden against this kind of failure.
ragmani [Thu, 20 Apr 2017 14:39:54 +0000 (23:39 +0900)]
[x86/Linux] fix a problem that stack was broken by changing stdcall to cdecl in case of readytorun. (#11063)
* [x86/Linux] fix a problem that stack was broken by changing stdcall to cdecl in case of readytorun.
add DynamicHelperArgsStub and change jmp to call.
* [x86/Linux] set cfi_def_cfa_offset of DynamicHelperArgsStub to 16.
Andy Ayers [Thu, 20 Apr 2017 00:21:23 +0000 (17:21 -0700)]
Merge pull request #11083 from AndyAyersMS/FixNonDevUseOfCheckProjects
Update CheckProjects to not fail for non-dev CORE_ROOT
Bruce Forstall [Wed, 19 Apr 2017 23:49:07 +0000 (16:49 -0700)]
Refactoring: move some BasicBlock functions to block.cpp
(where they belong)
Delete unused containsStatement().
Bruce Forstall [Wed, 19 Apr 2017 23:19:08 +0000 (16:19 -0700)]
Merge pull request #11081 from mikedn/static-noway
Convert some noway_assert to static_assert
José Rivero [Wed, 19 Apr 2017 23:17:35 +0000 (16:17 -0700)]
Allow to run all benchmarks and even upload, but fail the job.
Swaroop Sridhar [Fri, 14 Apr 2017 03:12:00 +0000 (20:12 -0700)]
Add LinkBench to CoreCLR BenchView
This change adds Linker tests as scenario tests tracked in
BenchView for CoreCLR benchmarks.
The Benchmarks added are:
HelloWorld, WebAPI, CoreFx, MusicStore (MSIL and ReadyToRun), Roslyn.
The metrics are:
MSIL size before and after ILLINK
Total publish-dir size before and after ILLINK
% Reduction in MSIL and Total dir-size after linking.
Aditya Mandaleeka [Wed, 19 Apr 2017 22:18:57 +0000 (15:18 -0700)]
Move ResetOBJECTHANDLE and the associated holder to the VM side.
Pat Gavlin [Wed, 19 Apr 2017 22:16:26 +0000 (15:16 -0700)]
Merge pull request #11077 from pgavlin/gh10940
Spill side-effects in impAssignMultiRegTypeToVar.
Jan Vorlicek [Wed, 19 Apr 2017 22:13:30 +0000 (15:13 -0700)]
Add NUMA and thread affinity support for Unix (#10938)
* Add NUMA and thread affinity support for Unix
This change adds new PAL functions for NUMA and thread affinity support
for Unix and also enables related code in GC and VM for FEATURE_PAL.
It doesn't reflect the limits imposed by CGROUPS on systems with
CGROUPS enables yet.
Jarret Shook [Wed, 19 Apr 2017 22:07:28 +0000 (15:07 -0700)]
Merge pull request #10257 from jashook/reflection_invoke_arm64
[Arm64] For reflection invoke, use ArgLocDesc
William Godbe [Wed, 19 Apr 2017 22:05:26 +0000 (15:05 -0700)]
Merge pull request #11085 from wtgodbe/SkipTests
Skip failing tests in Helix
wtgodbe [Wed, 19 Apr 2017 22:04:46 +0000 (15:04 -0700)]
Skip failing tests in Helix
Andy Ayers [Wed, 19 Apr 2017 21:07:24 +0000 (14:07 -0700)]
Update CheckProjects to not fail for non-dev CORE_ROOT
CheckProjects expects to be able to find the jit test project files
relative to the value of the `CORE_ROOT` environment variable. This
fails when we have test setups like cross-tests or helix where the
test binary tree has been copied away from the repo after building.
Tolerate these cases by returning a success code if the `CORE_ROOT`
path is not pointing at the expected place.
Fixes #11079.
Fixes #10635.
Mike Danes [Wed, 19 Apr 2017 21:06:40 +0000 (00:06 +0300)]
Convert some noway_assert to static_assert
Jonghyun Park [Wed, 19 Apr 2017 20:50:56 +0000 (05:50 +0900)]
[x86/Linux] Corretly pop args after unmanaged function call (#11007)
* [x86/Linux] Corretly pop args after unmanaged function call
* Fix x86/Windows build error
Pat Gavlin [Wed, 19 Apr 2017 20:38:05 +0000 (13:38 -0700)]
Add a regression test.