Re: [Lldb-commits] [PATCH] Change executable name to a.out.
Will discuss offline. On Jul 1, 2015 8:24 PM, Chaoren Lin chaor...@google.com wrote: Does the LLDB API output a clear and actionable error code if the filename you are launching is too long? Nope, it'll try to launch the inferior, and it'll think the inferior ran and exited with an error code. If not please add a test for this I don't think this is testable, it's completely dependent on the shell, your choice of working directory, and whatever extra arguments there are. On Wed, Jul 1, 2015 at 8:12 PM, Vince Harron vi...@nethacker.com wrote: LoL LL Spectacular speech to text failure REPOSITORY rL LLVM http://reviews.llvm.org/D10888 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Default to linking lldb-server statically for Android.
Chaoren, the fact that they are asking for rationale is a good clue that the rationale should be captured in comments. ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Use accept instead of accept4 for Android.
There are bugs in the old libs/headers. Same toolchain. On Jul 2, 2015 8:08 AM, Chaoren Lin chaor...@google.com wrote: I am statically linking against API-21. There are some bugs in the old toolchains that can be avoided by doing this. Aside from this issue, the resulting binary seem to run fine on API 10 devices (and passes most of the test suite). On Jul 2, 2015 02:33, Tamas Berghammer tbergham...@google.com wrote: I agree with Pavel that the toolchain shouldn't generate any source code what is using a missing syscall. I checked the implementation of accept on Gingerbread (API-9) and it is using the right syscall ( https://android.googlesource.com/platform/bionic/+/gingerbread-release/libc/arch-arm/syscalls/accept.S ). I am not sure what is causing this issue, but one of my guess is that you are statically linking against a wrong version of libc. http://reviews.llvm.org/D10887 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Change executable name to a.out.
Does the LoL DB API output a clear and actionable error code if the filename you are launching is too long? If not please add a test for this On Jul 1, 2015 6:26 PM, Chaoren Lin chaor...@google.com wrote: Hi sivachandra, The long name causes problems with some shells. http://reviews.llvm.org/D10888 Files: test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py Index: test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py === --- test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py +++ test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py @@ -39,7 +39,7 @@ # And the watchpoint variable declaration line number. self.decl = line_number(self.source, '// Watchpoint variable declaration.') # Build dictionary to have unique executable names for each test method. -self.exe_name = self.testMethodName +self.exe_name = 'a.out' self.d = {'C_SOURCES': self.source, 'EXE': self.exe_name} def hello_watchpoint(self): EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Change executable name to a.out.
LoL LL Spectacular speech to text failure On Jul 1, 2015 8:11 PM, Vince Harron vi...@nethacker.com wrote: Does the LoL DB API output a clear and actionable error code if the filename you are launching is too long? If not please add a test for this On Jul 1, 2015 6:26 PM, Chaoren Lin chaor...@google.com wrote: Hi sivachandra, The long name causes problems with some shells. http://reviews.llvm.org/D10888 Files: test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py Index: test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py === --- test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py +++ test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py @@ -39,7 +39,7 @@ # And the watchpoint variable declaration line number. self.decl = line_number(self.source, '// Watchpoint variable declaration.') # Build dictionary to have unique executable names for each test method. -self.exe_name = self.testMethodName +self.exe_name = 'a.out' self.d = {'C_SOURCES': self.source, 'EXE': self.exe_name} def hello_watchpoint(self): EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Change executable name to a.out.
Does the LoL DB API output a clear and actionable error code if the filename you are launching is too long? If not please add a test for this REPOSITORY rL LLVM http://reviews.llvm.org/D10888 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Change executable name to a.out.
LoL LL Spectacular speech to text failure REPOSITORY rL LLVM http://reviews.llvm.org/D10888 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r241071 - Fix windows build.
+chaorenl On Tue, Jun 30, 2015 at 8:03 AM, Ewan Crawford e...@codeplay.com wrote: Author: ewancrawford Date: Tue Jun 30 10:03:31 2015 New Revision: 241071 URL: http://llvm.org/viewvc/llvm-project?rev=241071view=rev Log: Fix windows build. Windows build was broken in either r240983 or r240978 in the changes to FileSpec.cpp Modified: lldb/trunk/source/Host/common/FileSpec.cpp Modified: lldb/trunk/source/Host/common/FileSpec.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/FileSpec.cpp?rev=241071r1=241070r2=241071view=diff == --- lldb/trunk/source/Host/common/FileSpec.cpp (original) +++ lldb/trunk/source/Host/common/FileSpec.cpp Tue Jun 30 10:03:31 2015 @@ -1088,7 +1088,6 @@ FileSpec::ForEachItemInDirectory (const do { -bool call_callback = false; FileSpec::FileType file_type = eFileTypeUnknown; if (ffd.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY) { @@ -1101,54 +1100,49 @@ FileSpec::ForEachItemInDirectory (const continue; file_type = eFileTypeDirectory; -call_callback = find_directories; } else if (ffd.dwFileAttributes FILE_ATTRIBUTE_DEVICE) { file_type = eFileTypeOther; -call_callback = find_other; } else { file_type = eFileTypeRegular; -call_callback = find_files; } -if (call_callback) -{ -char child_path[MAX_PATH]; -const int child_path_len = ::snprintf (child_path, sizeof(child_path), %s\\%s, dir_path, ffd.cFileName); -if (child_path_len (int)(sizeof(child_path) - 1)) -{ -// Don't resolve the file type or path -FileSpec child_path_spec (child_path, false); -EnumerateDirectoryResult result = callback (file_type, child_path_spec); +char child_path[MAX_PATH]; +const int child_path_len = ::snprintf (child_path, sizeof(child_path), %s\\%s, dir_path, ffd.cFileName); +if (child_path_len (int)(sizeof(child_path) - 1)) +{ +// Don't resolve the file type or path +FileSpec child_path_spec (child_path, false); -switch (result) -{ -case eEnumerateDirectoryResultNext: -// Enumerate next entry in the current directory. We just -// exit this switch and will continue enumerating the -// current directory as we currently are... -break; - -case eEnumerateDirectoryResultEnter: // Recurse into the current entry if it is a directory or symlink, or next if not -if (FileSpec::ForEachItemInDirectory(child_path, callback) == eEnumerateDirectoryResultQuit) -{ -// The subdirectory returned Quit, which means to -// stop all directory enumerations at all levels. -return eEnumerateDirectoryResultQuit; -} -break; - -case eEnumerateDirectoryResultExit: // Exit from the current directory at the current level. -// Exit from this directory level and tell parent to -// keep enumerating. -return eEnumerateDirectoryResultNext; +EnumerateDirectoryResult result = callback (file_type, child_path_spec); -case eEnumerateDirectoryResultQuit: // Stop directory enumerations at any level +switch (result) +{ +case eEnumerateDirectoryResultNext: +// Enumerate next entry in the current directory. We just +// exit this switch and will continue enumerating the +// current directory as we currently are... +break; + +case eEnumerateDirectoryResultEnter: // Recurse into the current entry if it is a directory or symlink, or next if not +if (FileSpec::ForEachItemInDirectory(child_path, callback) == eEnumerateDirectoryResultQuit) +{ +// The subdirectory returned Quit, which means to +// stop all directory enumerations at all levels. return eEnumerateDirectoryResultQuit; -} +
Re: [Lldb-commits] [lldb] r240927 - [linux] Use cmake to detect support process_vm_readv (bug #23918)
Don't we already get behavior like this when we invoke a missing syscall? On Mon, Jun 29, 2015 at 2:18 AM, Pavel Labath lab...@google.com wrote: Author: labath Date: Mon Jun 29 04:18:17 2015 New Revision: 240927 URL: http://llvm.org/viewvc/llvm-project?rev=240927view=rev Log: [linux] Use cmake to detect support process_vm_readv (bug #23918) Summary: Some old linux versions do not have process_vm_readv function defined. Even older versions do not have even the __NR_process_vm_readv syscall number. We use cmake to detect these situations and fallback appropriately: in the first case, we can issue the syscall manually, while it the latter case, we need to drop fast memory read support completely. Test Plan: linux test suite passes Reviewers: ovyalov, Eugene.Zelenko Subscribers: tberghammer, lldb-commits Differential Revision: http://reviews.llvm.org/D10727 Added: lldb/trunk/source/Host/linux/LibcGlue.cpp - copied, changed from r240895, lldb/trunk/source/Host/android/LibcGlue.cpp Modified: lldb/trunk/cmake/modules/LLDBConfig.cmake lldb/trunk/include/lldb/Host/linux/Uio.h lldb/trunk/source/Host/CMakeLists.txt lldb/trunk/source/Host/android/LibcGlue.cpp Modified: lldb/trunk/cmake/modules/LLDBConfig.cmake URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/LLDBConfig.cmake?rev=240927r1=240926r2=240927view=diff == --- lldb/trunk/cmake/modules/LLDBConfig.cmake (original) +++ lldb/trunk/cmake/modules/LLDBConfig.cmake Mon Jun 29 04:18:17 2015 @@ -248,3 +248,27 @@ if(NOT LLDB_REQUIRES_RTTI) endif() set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${LLDB_COMPILE_FLAGS}) + +if (CMAKE_SYSTEM_NAME MATCHES Linux) +# Check for syscall used by lldb-server on linux. +# If these are not found, it will fall back to ptrace (slow) for memory reads. +check_cxx_source_compiles( +#include sys/uio.h +int main() { process_vm_readv(0, nullptr, 0, nullptr, 0, 0); return 0; } +HAVE_PROCESS_VM_READV) + +if (HAVE_PROCESS_VM_READV) +add_definitions(-DHAVE_PROCESS_VM_READV) +else() +# If we don't have the syscall wrapper function, but we know the syscall number, we can +# still issue the syscall manually +check_cxx_source_compiles( +#include sys/syscall.h +int main() { return __NR_process_vm_readv; } +HAVE_NR_PROCESS_VM_READV) + +if (HAVE_NR_PROCESS_VM_READV) +add_definitions(-DHAVE_NR_PROCESS_VM_READV) +endif() +endif() +endif() Modified: lldb/trunk/include/lldb/Host/linux/Uio.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/linux/Uio.h?rev=240927r1=240926r2=240927view=diff == --- lldb/trunk/include/lldb/Host/linux/Uio.h (original) +++ lldb/trunk/include/lldb/Host/linux/Uio.h Mon Jun 29 04:18:17 2015 @@ -12,8 +12,8 @@ #include sys/uio.h -// Android does not define the process_vm_readv wrapper -#ifdef __ANDROID_NDK__ +// We shall provide our own implementation of process_vm_readv if it is not present +#ifndef HAVE_PROCESS_VM_READV ssize_t process_vm_readv(::pid_t pid, const struct iovec *local_iov, unsigned long liovcnt, const struct iovec *remote_iov, unsigned long riovcnt, Modified: lldb/trunk/source/Host/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/CMakeLists.txt?rev=240927r1=240926r2=240927view=diff == --- lldb/trunk/source/Host/CMakeLists.txt (original) +++ lldb/trunk/source/Host/CMakeLists.txt Mon Jun 29 04:18:17 2015 @@ -110,6 +110,7 @@ else() linux/Host.cpp linux/HostInfoLinux.cpp linux/HostThreadLinux.cpp +linux/LibcGlue.cpp linux/ThisThread.cpp ) else() @@ -117,6 +118,7 @@ else() linux/Host.cpp linux/HostInfoLinux.cpp linux/HostThreadLinux.cpp +linux/LibcGlue.cpp linux/ThisThread.cpp ) endif() Modified: lldb/trunk/source/Host/android/LibcGlue.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/android/LibcGlue.cpp?rev=240927r1=240926r2=240927view=diff == --- lldb/trunk/source/Host/android/LibcGlue.cpp (original) +++ lldb/trunk/source/Host/android/LibcGlue.cpp Mon Jun 29 04:18:17 2015 @@ -12,7 +12,6 @@ #include android/api-level.h #include sys/syscall.h -#include lldb/Host/linux/Uio.h #if __ANDROID_API__ 21 @@ -39,11 +38,3 @@ int posix_openpt(int flags) } #endif - -ssize_t process_vm_readv(::pid_t pid, -const struct iovec *local_iov, unsigned long
Re: [Lldb-commits] [PATCH] Fix [vdso] handling on Android (x86 and aarch64)
If you've fixed vdso handling, shouldn't some i386 tests be marked as passing? http://reviews.llvm.org/D10800 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Fix [vdso] handling on Android (x86 and aarch64)
You can use the gdb remote get auxv command I think to get libvdso load address. On Mon, Jun 29, 2015 at 3:28 PM, Tamas Berghammer tbergham...@google.com wrote: In http://reviews.llvm.org/D10800#196543, @vharron wrote: If you've fixed vdso handling, shouldn't some i386 tests be marked as passing? It is fixing it only on Android. There is a different between how the linker works on Linux and on Android and we need to solve one more additional issue to fix it on Linux also but it isn't trivial. The problem is that the Linux linker don't fill in the file path in the rendezvous structure for the [vdso] because it isn't a file (it is treated as a feature in the code) but currently we use that path to find the load address of the file (based on /proc/pid/maps). To fix the issue on Linux also we need an other way to get the load address of an SO. http://reviews.llvm.org/D10800 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Fix [vdso] handling on Android (x86 and aarch64)
You can use the gdb remote get auxv command I think to get libvdso load address. http://reviews.llvm.org/D10800 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Ignore teardown failure if it's caused by removing missing file or directory
Maybe we should call teardown from expectedFlakey instead? http://reviews.llvm.org/D10830 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Added expectedFlakey test decorator
REPOSITORY rL LLVM http://reviews.llvm.org/D10721 Files: lldb/trunk/test/expression_command/call-function/TestCallStopAndContinue.py lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py lldb/trunk/test/expression_command/timeout/TestCallWithTimeout.py lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py lldb/trunk/test/functionalities/avoids-fd-leak/TestFdLeak.py lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py lldb/trunk/test/functionalities/stop-hook/TestStopHookMechanism.py lldb/trunk/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py lldb/trunk/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py lldb/trunk/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py lldb/trunk/test/lang/c/register_variables/TestRegisterVariables.py lldb/trunk/test/lang/cpp/this/TestCPPThis.py lldb/trunk/test/lldbtest.py lldb/trunk/test/python_api/signals/TestSignalsAPI.py lldb/trunk/test/types/TestFloatTypes.py EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ Index: lldb/trunk/test/functionalities/avoids-fd-leak/TestFdLeak.py === --- lldb/trunk/test/functionalities/avoids-fd-leak/TestFdLeak.py +++ lldb/trunk/test/functionalities/avoids-fd-leak/TestFdLeak.py @@ -41,8 +41,8 @@ self.assertTrue(process.GetExitStatus() == 0, Process returned non-zero status. Were incorrect file descriptors passed?) -@expectedFailure(lambda x: sys.version_info = (2, 7, 8), bugs.freebsd.org/197376) # python random leaks fd -@expectedFailureLinux # xfail flakey test to get buildbot green +@expectedFlakey(lambda x: sys.version_info = (2, 7, 8), bugs.freebsd.org/197376) # python random leaks fd +@expectedFlakeyLinux @skipIfWindows # The check for descriptor leakage needs to be implemented differently here. @skipIfTargetAndroid() # Android have some other file descriptors open by the shell def test_fd_leak_multitarget (self): Index: lldb/trunk/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py === --- lldb/trunk/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py +++ lldb/trunk/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py @@ -23,7 +23,7 @@ @expectedFailureFreeBSD('llvm.org/pr18522') # hits break in another thread in testrun @python_api_test @dwarf_test -@expectedFailureLinux # this test fails 6/100 dosep runs +@expectedFlakeyLinux # this test fails 6/100 dosep runs def test_with_dwarf_python(self): Test that we obey thread conditioned breakpoints. self.buildDwarf() Index: lldb/trunk/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py === --- lldb/trunk/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py +++ lldb/trunk/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py @@ -22,6 +22,8 @@ @skipIfFreeBSD # Hangs. May be the same as Linux issue llvm.org/pr16229 but # not yet investigated. Revisit once required functionality # is implemented for FreeBSD. +@skipIfLinux # Occasionally hangs on the build bot, expectedFailureLinux + @dwarf_test def test_create_after_attach_with_dwarf_and_popen(self): Test thread creation after process attach. @@ -32,6 +34,7 @@ # for FreeBSD. @dwarf_test @skipIfRemote +@expectedFlakeyLinux(llvm.org/pr16229) # 1/100 dosep, build 3546, clang-3.5 x84_64 def test_create_after_attach_with_dwarf_and_fork(self): Test thread creation after process attach. self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False)) Index: lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py === --- lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py +++ lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py @@ -24,7 +24,7 @@ @dwarf_test @expectedFailureFreeBSD('llvm.org/pr17946') -@expectedFailureLinux # failed 1/365 test runs, line 61, thread.IsValid() +@expectedFlakeyLinux # failed 1/365 test runs, line 61, thread.IsValid() def test_with_dwarf_and_run_command(self): Test that expr will time out and allow other threads to run if it blocks. self.buildDwarf() Index: lldb/trunk/test/functionalities/stop-hook/TestStopHookMechanism.py === --- lldb/trunk/test/functionalities/stop-hook/TestStopHookMechanism.py +++
[Lldb-commits] [lldb] r240803 - Fixed incorrect application of expectedFlakey
Author: vharron Date: Fri Jun 26 13:01:15 2015 New Revision: 240803 URL: http://llvm.org/viewvc/llvm-project?rev=240803view=rev Log: Fixed incorrect application of expectedFlakey Modified: lldb/trunk/test/lang/c/register_variables/TestRegisterVariables.py Modified: lldb/trunk/test/lang/c/register_variables/TestRegisterVariables.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lang/c/register_variables/TestRegisterVariables.py?rev=240803r1=240802r2=240803view=diff == --- lldb/trunk/test/lang/c/register_variables/TestRegisterVariables.py (original) +++ lldb/trunk/test/lang/c/register_variables/TestRegisterVariables.py Fri Jun 26 13:01:15 2015 @@ -19,7 +19,7 @@ class RegisterVariableTestCase(TestBase) @dwarf_test @expectedFailureClang(None, ['', '3.5']) -@expectedFlakeyGcc # failed with gcc4.8.2 +@expectedFailureGcc(None, ['is', '4.8.2']) def test_with_dwarf_and_run_command(self): Test expressions on register values. self.buildDwarf() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Replace `rm -rf` with more portable implementation.
LGTM http://reviews.llvm.org/D10787 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Added expectedFlakey test decorator
Added expectedFlakeyClang/Gcc, switched a bunch of tests to use new decorator. http://reviews.llvm.org/D10721 Files: test/expression_command/call-function/TestCallStopAndContinue.py test/expression_command/call-restarts/TestCallThatRestarts.py test/expression_command/timeout/TestCallWithTimeout.py test/functionalities/attach_resume/TestAttachResume.py test/functionalities/avoids-fd-leak/TestFdLeak.py test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py test/functionalities/stop-hook/TestStopHookMechanism.py test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py test/lang/c/register_variables/TestRegisterVariables.py test/lang/cpp/this/TestCPPThis.py test/lldbtest.py test/python_api/signals/TestSignalsAPI.py test/types/TestFloatTypes.py EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ Index: test/expression_command/call-function/TestCallStopAndContinue.py === --- test/expression_command/call-function/TestCallStopAndContinue.py +++ test/expression_command/call-function/TestCallStopAndContinue.py @@ -22,14 +22,14 @@ @skipUnlessDarwin @dsym_test -@expectedFailureDarwin(llvm.org/pr20274) # intermittent failure on MacOSX +@expectedFlakeyDarwin(llvm.org/pr20274) def test_with_dsym(self): Test gathering result from interrupted function call. self.buildDsym() self.call_function() @dwarf_test -@expectedFailureDarwin(llvm.org/pr20274) # intermittent failure on MacOSX +@expectedFlakeyDarwin(llvm.org/pr20274) def test_with_dwarf(self): Test gathering result from interrupted function call. self.buildDwarf() Index: test/expression_command/call-restarts/TestCallThatRestarts.py === --- test/expression_command/call-restarts/TestCallThatRestarts.py +++ test/expression_command/call-restarts/TestCallThatRestarts.py @@ -29,7 +29,7 @@ @dwarf_test @skipIfFreeBSD # llvm.org/pr19246: intermittent failure -@expectedFailureLinux(llvm.org/pr19246) # intermittent failure +@expectedFailureLinux(llvm.org/pr19246) @skipIfDarwin # llvm.org/pr19246: intermittent failure @skipIfWindows # Test relies on signals, unsupported on Windows def test_with_dwarf(self): Index: test/expression_command/timeout/TestCallWithTimeout.py === --- test/expression_command/timeout/TestCallWithTimeout.py +++ test/expression_command/timeout/TestCallWithTimeout.py @@ -28,7 +28,7 @@ self.call_function() @expectedFailureFreeBSD(llvm.org/pr19605) # fails on buildbot -@expectedFailureLinux(llvm.org/pr20275) # fails intermittently on Linux +@expectedFlakeyLinux(llvm.org/pr20275) @dwarf_test def test_with_dwarf(self): Test calling std::String member function. Index: test/functionalities/attach_resume/TestAttachResume.py === --- test/functionalities/attach_resume/TestAttachResume.py +++ test/functionalities/attach_resume/TestAttachResume.py @@ -22,7 +22,7 @@ self.buildDwarf() self.process_attach_continue_interrupt_detach() -@expectedFailureLinux('llvm.org/pr19478') # intermittent ~2/14 runs +@expectedFlakeyLinux('llvm.org/pr19478') # intermittent ~2/14 runs @skipIfRemote def process_attach_continue_interrupt_detach(self): Test attach/continue/interrupt/detach Index: test/functionalities/avoids-fd-leak/TestFdLeak.py === --- test/functionalities/avoids-fd-leak/TestFdLeak.py +++ test/functionalities/avoids-fd-leak/TestFdLeak.py @@ -41,8 +41,8 @@ self.assertTrue(process.GetExitStatus() == 0, Process returned non-zero status. Were incorrect file descriptors passed?) -@expectedFailure(lambda x: sys.version_info = (2, 7, 8), bugs.freebsd.org/197376) # python random leaks fd -@expectedFailureLinux # xfail flakey test to get buildbot green +@expectedFlakey(lambda x: sys.version_info = (2, 7, 8), bugs.freebsd.org/197376) # python random leaks fd +@expectedFlakeyLinux @skipIfWindows # The check for descriptor leakage needs to be implemented differently here. @skipIfTargetAndroid() # Android have some other file descriptors open by the shell def test_fd_leak_multitarget (self): Index: test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py === --- test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py +++ test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
[Lldb-commits] [PATCH] Added expectedFlakey test decorator
Hi clayborg, chying, Flakey tests get two chances to pass http://reviews.llvm.org/D10721 Files: test/lldbtest.py Index: test/lldbtest.py === --- test/lldbtest.py +++ test/lldbtest.py @@ -646,6 +646,53 @@ return 'true' in self.res.GetOutput() and self.expectedCompiler(compilers) return expectedFailure(fn, bugnumber) +# if the test passes on the first try, we're done (success) +# if the test fails once, then passes on the second try, raise an ExpectedFailure +# if the test fails twice in a row, re-throw the exception from the second test run +def expectedFlakey(expected_fn, bugnumber=None): +def expectedFailure_impl(func): +@wraps(func) +def wrapper(*args, **kwargs): +from unittest2 import case +self = args[0] +try: +func(*args, **kwargs) +except Exception: +if expected_fn(self): +# retry +try: +func(*args, **kwargs) +except Exception: +# oh snap! two failures in a row, record a failure/error +raise +# record the expected failure +raise case._ExpectedFailure(sys.exc_info(), bugnumber) +else: +raise +return wrapper +# if bugnumber is not-callable(incluing None), that means decorator function is called with optional arguments +# return decorator in this case, so it will be used to decorating original method +if callable(bugnumber): +return expectedFailure_impl(bugnumber) +else: +return expectedFailure_impl + +def expectedFlakeyOS(oslist, bugnumber=None, compilers=None): +def fn(self): +return (self.getPlatform() in oslist and +self.expectedCompiler(compilers)) +return expectedFlakey(fn, bugnumber) + +def expectedFlakeyDarwin(bugnumber=None, compilers=None): +# For legacy reasons, we support both darwin and macosx as OS X triples. +return expectedFlakeyOS(getDarwinOSTriples(), bugnumber, compilers) + +def expectedFlakeyLinux(bugnumber=None, compilers=None): +return expectedFlakeyOS(['linux'], bugnumber, compilers) + +def expectedFlakeyFreeBSD(bugnumber=None, compilers=None): +return expectedFlakeyOS(['freebsd'], bugnumber, compilers) + def skipIfRemote(func): Decorate the item to skip tests if testing remotely. if isinstance(func, type) and issubclass(func, unittest2.TestCase): EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ Index: test/lldbtest.py === --- test/lldbtest.py +++ test/lldbtest.py @@ -646,6 +646,53 @@ return 'true' in self.res.GetOutput() and self.expectedCompiler(compilers) return expectedFailure(fn, bugnumber) +# if the test passes on the first try, we're done (success) +# if the test fails once, then passes on the second try, raise an ExpectedFailure +# if the test fails twice in a row, re-throw the exception from the second test run +def expectedFlakey(expected_fn, bugnumber=None): +def expectedFailure_impl(func): +@wraps(func) +def wrapper(*args, **kwargs): +from unittest2 import case +self = args[0] +try: +func(*args, **kwargs) +except Exception: +if expected_fn(self): +# retry +try: +func(*args, **kwargs) +except Exception: +# oh snap! two failures in a row, record a failure/error +raise +# record the expected failure +raise case._ExpectedFailure(sys.exc_info(), bugnumber) +else: +raise +return wrapper +# if bugnumber is not-callable(incluing None), that means decorator function is called with optional arguments +# return decorator in this case, so it will be used to decorating original method +if callable(bugnumber): +return expectedFailure_impl(bugnumber) +else: +return expectedFailure_impl + +def expectedFlakeyOS(oslist, bugnumber=None, compilers=None): +def fn(self): +return (self.getPlatform() in oslist and +self.expectedCompiler(compilers)) +return expectedFlakey(fn, bugnumber) + +def expectedFlakeyDarwin(bugnumber=None, compilers=None): +# For legacy reasons, we support both darwin and macosx as OS X triples. +return expectedFlakeyOS(getDarwinOSTriples(), bugnumber, compilers) + +def expectedFlakeyLinux(bugnumber=None, compilers=None): +return expectedFlakeyOS(['linux'], bugnumber, compilers) + +def expectedFlakeyFreeBSD(bugnumber=None, compilers=None): +return expectedFlakeyOS(['freebsd'],
Re: [Lldb-commits] [PATCH] Adding some more flakey tests to the XFAIL list
Logs sent directly to Ilia http://reviews.llvm.org/D10583 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r240327 - Adding some more flakey tests to the XFAIL list
Author: vharron Date: Mon Jun 22 15:54:14 2015 New Revision: 240327 URL: http://llvm.org/viewvc/llvm-project?rev=240327view=rev Log: Adding some more flakey tests to the XFAIL list Modified: lldb/trunk/test/dosep.py lldb/trunk/test/tools/lldb-mi/TestMiGdbSetShow.py lldb/trunk/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py lldb/trunk/test/tools/lldb-mi/syntax/TestMiSyntax.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=240327r1=240326r2=240327view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Mon Jun 22 15:54:14 2015 @@ -251,6 +251,7 @@ def getExpectedTimeouts(platform_name): TestExitDuringStep.py, TestHelloWorld.py, # Times out in ~10% of the times on the build bot TestMultithreaded.py, +TestRegisters.py, # ~12/600 dosep runs (build 3120-3122) TestThreadStepOut.py, } elif target.startswith(android): Modified: lldb/trunk/test/tools/lldb-mi/TestMiGdbSetShow.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-mi/TestMiGdbSetShow.py?rev=240327r1=240326r2=240327view=diff == --- lldb/trunk/test/tools/lldb-mi/TestMiGdbSetShow.py (original) +++ lldb/trunk/test/tools/lldb-mi/TestMiGdbSetShow.py Mon Jun 22 15:54:14 2015 @@ -62,6 +62,7 @@ class MiGdbSetShowTestCase(lldbmi_testca @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~11/600 dosep runs (build 3120-3122) def test_lldbmi_gdb_set_target_async_off(self): Test that 'lldb-mi --interpreter' can execute commands in sync mode. Modified: lldb/trunk/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py?rev=240327r1=240326r2=240327view=diff == --- lldb/trunk/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py (original) +++ lldb/trunk/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py Mon Jun 22 15:54:14 2015 @@ -55,6 +55,7 @@ class MiInterpreterExecTestCase(lldbmi_t @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~9/600 dosep runs (build 3120-3122) def test_lldbmi_settings_set_target_run_args_before(self): Test that 'lldb-mi --interpreter' can set target arguments by 'setting set target.run-args' command before than target was created. @@ -87,6 +88,7 @@ class MiInterpreterExecTestCase(lldbmi_t @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~9/600 dosep runs (build 3120-3122) def test_lldbmi_settings_set_target_run_args_after(self): Test that 'lldb-mi --interpreter' can set target arguments by 'setting set target.run-args' command after than target was created. Modified: lldb/trunk/test/tools/lldb-mi/syntax/TestMiSyntax.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-mi/syntax/TestMiSyntax.py?rev=240327r1=240326r2=240327view=diff == --- lldb/trunk/test/tools/lldb-mi/syntax/TestMiSyntax.py (original) +++ lldb/trunk/test/tools/lldb-mi/syntax/TestMiSyntax.py Mon Jun 22 15:54:14 2015 @@ -61,6 +61,7 @@ class MiSyntaxTestCase(lldbmi_testcase.M @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~6/600 dosep runs (build 3120-3122) def test_lldbmi_process_output(self): Test that 'lldb-mi --interpreter' wraps process output correctly. ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Don't crash if a member declaration is incomplete
Ah, if clang-3.6 is on your path try -C clang-3.6 instead of /usr/bin/cc REPOSITORY rL LLVM http://reviews.llvm.org/D10509 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] Adding some more flakey tests to the XFAIL list
Hi chying, clayborg, See comments for rationale http://reviews.llvm.org/D10583 Files: test/dosep.py test/tools/lldb-mi/TestMiGdbSetShow.py test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py test/tools/lldb-mi/syntax/TestMiSyntax.py Index: test/dosep.py === --- test/dosep.py +++ test/dosep.py @@ -251,6 +251,7 @@ TestExitDuringStep.py, TestHelloWorld.py, # Times out in ~10% of the times on the build bot TestMultithreaded.py, +TestRegisters.py, # ~12/600 dosep runs (build 3120-3122) TestThreadStepOut.py, } elif target.startswith(android): Index: test/tools/lldb-mi/TestMiGdbSetShow.py === --- test/tools/lldb-mi/TestMiGdbSetShow.py +++ test/tools/lldb-mi/TestMiGdbSetShow.py @@ -62,6 +62,7 @@ @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~11/600 dosep runs (build 3120-3122) def test_lldbmi_gdb_set_target_async_off(self): Test that 'lldb-mi --interpreter' can execute commands in sync mode. Index: test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py === --- test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py +++ test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py @@ -55,6 +55,7 @@ @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~9/600 dosep runs (build 3120-3122) def test_lldbmi_settings_set_target_run_args_before(self): Test that 'lldb-mi --interpreter' can set target arguments by 'setting set target.run-args' command before than target was created. @@ -79,6 +80,7 @@ @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~9/600 dosep runs (build 3120-3122) def test_lldbmi_settings_set_target_run_args_after(self): Test that 'lldb-mi --interpreter' can set target arguments by 'setting set target.run-args' command after than target was created. Index: test/tools/lldb-mi/syntax/TestMiSyntax.py === --- test/tools/lldb-mi/syntax/TestMiSyntax.py +++ test/tools/lldb-mi/syntax/TestMiSyntax.py @@ -61,6 +61,7 @@ @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~6/600 dosep runs (build 3120-3122) def test_lldbmi_process_output(self): Test that 'lldb-mi --interpreter' wraps process output correctly. EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ Index: test/dosep.py === --- test/dosep.py +++ test/dosep.py @@ -251,6 +251,7 @@ TestExitDuringStep.py, TestHelloWorld.py, # Times out in ~10% of the times on the build bot TestMultithreaded.py, +TestRegisters.py, # ~12/600 dosep runs (build 3120-3122) TestThreadStepOut.py, } elif target.startswith(android): Index: test/tools/lldb-mi/TestMiGdbSetShow.py === --- test/tools/lldb-mi/TestMiGdbSetShow.py +++ test/tools/lldb-mi/TestMiGdbSetShow.py @@ -62,6 +62,7 @@ @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~11/600 dosep runs (build 3120-3122) def test_lldbmi_gdb_set_target_async_off(self): Test that 'lldb-mi --interpreter' can execute commands in sync mode. Index: test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py === --- test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py +++ test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py @@ -55,6 +55,7 @@ @lldbmi_test @expectedFailureWindows(llvm.org/pr22274: need a pexpect replacement for windows) @skipIfFreeBSD # llvm.org/pr22411: Failure presumably due to known thread races +@expectedFailureLinux # Failing in ~9/600 dosep runs (build 3120-3122) def test_lldbmi_settings_set_target_run_args_before(self): Test that 'lldb-mi --interpreter' can set target arguments by
Re: [Lldb-commits] [PATCH] Don't crash if a member declaration is incomplete
Hi Keno, The tests are generally passing cleanly on Linux and OSX for us. Can you post complete repro steps so we might be able to help troubleshoot? Please try building with CMake on Linux and Xcode on OSX to see if this improves for you. Vince On Jun 18, 2015 6:05 PM, Keno Fischer kfisc...@college.harvard.edu wrote: @clayborg, would you mind trying out the tests and seeing if they can be improved. I've tried getting the LLDB tests running, but on Linux the tests just generally fail for me and on OS X, LLDB python segfaults as soon as it tries to load LLDB, so I wasn't able to actually run them. Also, I don't have any experience writing LLDB tests, so I'm sure they need to be improved. REPOSITORY rL LLVM http://reviews.llvm.org/D10509 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r239450 - Mark TestMultithreaded as XTIMEOUT on Linux.
Can you put that as a comment on the XFAIL? Also, is this an increase in frequency? If so, we should note the CL range so we can try to narrow down later On Jun 9, 2015 6:50 PM, Oleksiy Vyalov ovya...@google.com wrote: It was timed out 3 times for last 5 hours. On Jun 9, 2015 6:46 PM, Vince Harron vi...@nethacker.com wrote: Any indication of frequency? On Jun 9, 2015 6:44 PM, Oleksiy Vyalov ovya...@google.com wrote: Author: ovyalov Date: Tue Jun 9 20:34:25 2015 New Revision: 239450 URL: http://llvm.org/viewvc/llvm-project?rev=239450view=rev Log: Mark TestMultithreaded as XTIMEOUT on Linux. Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=239450r1=239449r2=239450view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Tue Jun 9 20:34:25 2015 @@ -250,6 +250,7 @@ def getExpectedTimeouts(platform_name): TestEvents.py, TestExitDuringStep.py, TestHelloWorld.py, # Times out in ~10% of the times on the build bot +TestMultithreaded.py, TestThreadStepOut.py, } elif target.startswith(android): ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r239450 - Mark TestMultithreaded as XTIMEOUT on Linux.
Any indication of frequency? On Jun 9, 2015 6:44 PM, Oleksiy Vyalov ovya...@google.com wrote: Author: ovyalov Date: Tue Jun 9 20:34:25 2015 New Revision: 239450 URL: http://llvm.org/viewvc/llvm-project?rev=239450view=rev Log: Mark TestMultithreaded as XTIMEOUT on Linux. Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=239450r1=239449r2=239450view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Tue Jun 9 20:34:25 2015 @@ -250,6 +250,7 @@ def getExpectedTimeouts(platform_name): TestEvents.py, TestExitDuringStep.py, TestHelloWorld.py, # Times out in ~10% of the times on the build bot +TestMultithreaded.py, TestThreadStepOut.py, } elif target.startswith(android): ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r239130 - Fix error handling in AdbClient - PushFile and PullFile.
Why aren't we just invoking the adb command? ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r239130 - Fix error handling in AdbClient - PushFile and PullFile.
This is probably a better API than a CLI. Concern withdrawn. On Jun 5, 2015 8:34 AM, Oleksiy Vyalov ovya...@google.com wrote: adb binary might not be in user's PATH - but adb server on 5037 should be available. On Fri, Jun 5, 2015 at 6:16 AM, Vince Harron vi...@nethacker.com wrote: Why aren't we just invoking the adb command? -- Oleksiy Vyalov | Software Engineer | ovya...@google.com ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Add Read Thread to GDBRemoteCommunication.
Ewan, has your non-stop mode implementation been tested against gdbserver? On Jun 1, 2015 11:01 AM, Greg Clayton clayb...@gmail.com wrote: My main concern with any threading is pairing the correct response to a the person that sent the packet. Are async packets marked so they absolutely can't be confused with any other response packets? I really don't like the fact that there are no sequence numbers in the sent/received packets because this makes it hard to know when you get the right response if a previous packet times out. I recently added qEcho to support making sure we stay on track and would like to ensure that any of the code added above won't let any packets receive the wrong reply packet. REPOSITORY rL LLVM http://reviews.llvm.org/D10085 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Improve test for g++ 4.6
Debugging apps built with gcc 4.6 might be important to someone. No reason to pull it out if it's not hurting. On May 29, 2015 10:15 AM, Chaoren Lin chaor...@google.com wrote: I support that idea, but we should probably consult Greg as well. On May 29, 2015 10:11, Ed Maste ema...@freebsd.org wrote: Or, perhaps we can just remove this check / c++0x workaround altogether now? Since LLVM/Clang/LLDB requires a C++11 compiler to build, we know the user has one they can use. http://reviews.llvm.org/D10122 https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10122d=AwMFaQc=8hUWFZcy2Z-Za5rBPlktOQr=MEqT8U_n7oNfuDW5NRbY3ZV384ZquXIYFPWmprwUdKMm=Z8Qkx2Xod8q9q07asvq9Qc11gIZT2mliGq0L-czyFqgs=QstaPJfR42TgDC0J-pNJDu18SewIpRiq1csR-loIcdke= EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_settings_panel_emailpreferences_d=AwMFaQc=8hUWFZcy2Z-Za5rBPlktOQr=MEqT8U_n7oNfuDW5NRbY3ZV384ZquXIYFPWmprwUdKMm=Z8Qkx2Xod8q9q07asvq9Qc11gIZT2mliGq0L-czyFqgs=j-i3qJXyH895iZbKZBFBKf90V7xNkHasyLgLHf-YpdIe= ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r238283 - Changed Flags::clang_type_resolve_state to unsigned for gcc
It didn't suggest a -Wflag and my reading on this didn't produce one either. I'm open to suggestions. On May 27, 2015 2:27 AM, Pavel Labath lab...@google.com wrote: Wouldn't it be better to disable the warning (-Wno-whatever) instead of littering the codebase with ifdefs? pl On 27 May 2015 at 05:54, Vince Harron vi...@nethacker.com wrote: Author: vharron Date: Tue May 26 23:54:36 2015 New Revision: 238283 URL: http://llvm.org/viewvc/llvm-project?rev=238283view=rev Log: Changed Flags::clang_type_resolve_state to unsigned for gcc to work around a very noisy gcc warning Modified: lldb/trunk/include/lldb/Symbol/Type.h Modified: lldb/trunk/include/lldb/Symbol/Type.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/Type.h?rev=238283r1=238282r2=238283view=diff == --- lldb/trunk/include/lldb/Symbol/Type.h (original) +++ lldb/trunk/include/lldb/Symbol/Type.h Tue May 26 23:54:36 2015 @@ -305,7 +305,12 @@ protected: ClangASTType m_clang_type; struct Flags { +#ifdef __GNUC__ +// using unsigned type here to work around a very noisy gcc warning +unsignedclang_type_resolve_state : 2; +#else ResolveStateclang_type_resolve_state : 2; +#endif boolis_complete_objc_class : 1; } m_flags; ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r238281 - dosep - force timeout processes to dump core when they timeout
Author: vharron Date: Tue May 26 23:40:36 2015 New Revision: 238281 URL: http://llvm.org/viewvc/llvm-project?rev=238281view=rev Log: dosep - force timeout processes to dump core when they timeout move all core files to the session dir after all tests have completed TEST PLAN Run tests. Force a timeout by decreasing a timeout export LLDB_EVENTS_TIMEOUT=10s ./dosep.py Differential Revision: http://reviews.llvm.org/D9905 Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=238281r1=238280r2=238281view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Tue May 26 23:40:36 2015 @@ -19,10 +19,21 @@ Set to 0 to run without time limit. E.g., export LLDB_TEST_TIMEOUT=0 orexport LLDB_TESTCONCURRENTEVENTS_TIMEOUT=0 + +To collect core files for timed out tests, do the following before running dosep.py + +OSX +ulimit -c unlimited +sudo sysctl -w kern.corefile=core.%P + +Linux: +ulimit -c unlimited +echo core.%p | sudo tee /proc/sys/kernel/core_pattern import multiprocessing import os +import fnmatch import platform import re import dotest_args @@ -57,15 +68,16 @@ eTimedOut, ePassed, eFailed = 124, 0, 1 def call_with_timeout(command, timeout): Run command with a timeout if possible. +-s QUIT will create a coredump if they are enabled on your system if os.name != nt: if timeout_command and timeout != 0: -return subprocess.call([timeout_command, timeout] + command, +return subprocess.call([timeout_command, '-s', 'QUIT', timeout] + command, stdin=subprocess.PIPE, close_fds=True) return (ePassed if subprocess.call(command, stdin=subprocess.PIPE, close_fds=True) == 0 else eFailed) else: if timeout_command and timeout != 0: -return subprocess.call([timeout_command, timeout] + command, +return subprocess.call([timeout_command, '-s', 'QUIT', timeout] + command, stdin=subprocess.PIPE) return (ePassed if subprocess.call(command, stdin=subprocess.PIPE) == 0 else eFailed) @@ -194,6 +206,14 @@ def touch(fname, times=None): with open(fname, 'a'): os.utime(fname, times) +def find(pattern, path): +result = [] +for root, dirs, files in os.walk(path): +for name in files: +if fnmatch.fnmatch(name, pattern): +result.append(os.path.join(root, name)) +return result + def main(): # We can't use sys.path[0] to determine the script directory # because it doesn't work under a debugger @@ -255,6 +275,11 @@ Run lldb test suite using a separate pro else: test_subdir = os.path.join(test_directory, args[0]) +# clean core files in test tree from previous runs (Linux) +cores = find('core.*', test_subdir) +for core in cores: +os.unlink(core) + if opts.num_threads: num_threads = opts.num_threads else: @@ -272,6 +297,13 @@ Run lldb test suite using a separate pro timed_out = set(timed_out) num_tests = len(failed) + len(passed) +# move core files into session dir +cores = find('core.*', test_subdir) +for core in cores: +dst = core.replace(test_directory, )[1:] +dst = dst.replace(os.path.sep, -) +os.rename(core, os.path.join(session_dir, dst)) + # remove expected timeouts from failures expected_timeout = getExpectedTimeouts(dotest_options.lldb_platform_name) for xtime in expected_timeout: ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r238282 - test Makefile.rules - pick a more sensible default CC on Linux
Author: vharron Date: Tue May 26 23:42:54 2015 New Revision: 238282 URL: http://llvm.org/viewvc/llvm-project?rev=238282view=rev Log: test Makefile.rules - pick a more sensible default CC on Linux Differential Revision: http://reviews.llvm.org/D9920 Modified: lldb/trunk/test/make/Makefile.rules Modified: lldb/trunk/test/make/Makefile.rules URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/make/Makefile.rules?rev=238282r1=238281r2=238282view=diff == --- lldb/trunk/test/make/Makefile.rules (original) +++ lldb/trunk/test/make/Makefile.rules Tue May 26 23:42:54 2015 @@ -69,7 +69,13 @@ endif #-- CC ?= clang ifeq $(CC) cc - CC = clang + ifneq $(shell which clang) + CC = clang + else ifneq $(shell which clang-3.5) + CC = clang-3.5 + else ifneq $(shell which gcc) + CC = gcc + endif endif #-- ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r238283 - Changed Flags::clang_type_resolve_state to unsigned for gcc
Author: vharron Date: Tue May 26 23:54:36 2015 New Revision: 238283 URL: http://llvm.org/viewvc/llvm-project?rev=238283view=rev Log: Changed Flags::clang_type_resolve_state to unsigned for gcc to work around a very noisy gcc warning Modified: lldb/trunk/include/lldb/Symbol/Type.h Modified: lldb/trunk/include/lldb/Symbol/Type.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/Type.h?rev=238283r1=238282r2=238283view=diff == --- lldb/trunk/include/lldb/Symbol/Type.h (original) +++ lldb/trunk/include/lldb/Symbol/Type.h Tue May 26 23:54:36 2015 @@ -305,7 +305,12 @@ protected: ClangASTType m_clang_type; struct Flags { +#ifdef __GNUC__ +// using unsigned type here to work around a very noisy gcc warning +unsignedclang_type_resolve_state : 2; +#else ResolveStateclang_type_resolve_state : 2; +#endif boolis_complete_objc_class : 1; } m_flags; ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r238284 - www - updated build server URLs
Author: vharron Date: Tue May 26 23:55:31 2015 New Revision: 238284 URL: http://llvm.org/viewvc/llvm-project?rev=238284view=rev Log: www - updated build server URLs Modified: lldb/trunk/www/build.html Modified: lldb/trunk/www/build.html URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/build.html?rev=238284r1=238283r2=238284view=diff == --- lldb/trunk/www/build.html (original) +++ lldb/trunk/www/build.html Tue May 26 23:55:31 2015 @@ -21,15 +21,19 @@ p The following LLVM buildbots build and test LLDB trunk: ul - li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang;LLDB Linux x86_64 build with Clang (automake)/a + li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake;LLDB Ubuntu 14.04 x86_64 (CMake, clang-3.5+/gcc-4.8, i386/x86_64)/a /li - li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-linux;LLDB Linux x86_64 build with GCC 4.6 (automake)/a + li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-android;LLDB Ubuntu 14.04 x86_64-Android (CMake, gcc-4.9 arm/arm64/x86)/a /li - li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-darwin12;LLDB Mac OS X x86_64 build with Clang (XCode)/a + li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-darwin-13.4;LLDB Mac OS X 10.9.5 x86_64 (Xcode)/a /li - li a href=http://llvm-amd64.freebsd.your.org:8010/builders/lldb-amd64-freebsd;LLDB FreeBSD x86_64 (CMake)/a + li a href=http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc;LLDB Windows Server 2008 x86 (CMake, MSVS 2013, Windows SDK 8.1, no tests)/a /li - li a href=http://llvm-amd64.freebsd.your.org:8010/builders/lldb-i386-freebsd;LLDB FreeBSD i386/a + li a href=http://lab.llvm.org:8011/builders/lldb-x86-win7-msvc;LLDB Windows 7 x86 (CMake, MSVS 2013, Windows SDK 8.1, no tests)/a + /li + li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang;LLDB Ubuntu 14.04 x86_64 build (automake, Clang 3.4, VMware Workstation)/a + /li + li a href=http://lab.llvm.org:8011/builders/lldb-x86_64-freebsd;LLDB FreeBSD x86_64 (CMake)/a /li /ul /p ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r238174 - revert files unintentionally checked in
Author: vharron Date: Mon May 25 22:10:41 2015 New Revision: 238174 URL: http://llvm.org/viewvc/llvm-project?rev=238174view=rev Log: revert files unintentionally checked in Modified: lldb/trunk/include/lldb/Symbol/Type.h lldb/trunk/source/Symbol/Type.cpp Modified: lldb/trunk/include/lldb/Symbol/Type.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/Type.h?rev=238174r1=238173r2=238174view=diff == --- lldb/trunk/include/lldb/Symbol/Type.h (original) +++ lldb/trunk/include/lldb/Symbol/Type.h Mon May 25 22:10:41 2015 @@ -305,9 +305,7 @@ protected: ClangASTType m_clang_type; struct Flags { -// clang_type_resolve_state is a ResolveState enum -// using unsigned type here to work around a very noisy gcc warning -unsignedclang_type_resolve_state : 2; +ResolveStateclang_type_resolve_state : 2; boolis_complete_objc_class : 1; } m_flags; Modified: lldb/trunk/source/Symbol/Type.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/Type.cpp?rev=238174r1=238173r2=238174view=diff == --- lldb/trunk/source/Symbol/Type.cpp (original) +++ lldb/trunk/source/Symbol/Type.cpp Mon May 25 22:10:41 2015 @@ -101,7 +101,7 @@ Type::Type m_decl (decl), m_clang_type (clang_type) { -m_flags.SetResolveState(clang_type ? clang_type_resolve_state : eResolveStateUnresolved); +m_flags.clang_type_resolve_state = (clang_type ? clang_type_resolve_state : eResolveStateUnresolved); m_flags.is_complete_objc_class = false; } @@ -118,7 +118,7 @@ Type::Type () : m_decl (), m_clang_type () { -m_flags.SetResolveState(eResolveStateUnresolved); +m_flags.clang_type_resolve_state = eResolveStateUnresolved; m_flags.is_complete_objc_class = false; } @@ -505,7 +505,7 @@ Type::ResolveClangType (ResolveState cla if (encoding_clang_type.IsValid()) { m_clang_type = encoding_clang_type; - m_flags.SetResolveState(encoding_type-m_flags.clang_type_resolve_state); +m_flags.clang_type_resolve_state = encoding_type-m_flags.clang_type_resolve_state; } } break; @@ -594,7 +594,7 @@ Type::ResolveClangType (ResolveState cla // Check if we have a forward reference to a class/struct/union/enum? if (m_clang_type.IsValid() m_flags.clang_type_resolve_state clang_type_resolve_state) { -m_flags.SetResolveState(eResolveStateFull); +m_flags.clang_type_resolve_state = eResolveStateFull; if (!m_clang_type.IsDefined ()) { // We have a forward declaration, we need to resolve it to a complete definition. ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r238173 - Print port number that lldb-server binds to in platform mode
Author: vharron Date: Mon May 25 22:08:05 2015 New Revision: 238173 URL: http://llvm.org/viewvc/llvm-project?rev=238173view=rev Log: Print port number that lldb-server binds to in platform mode If binding to port 0 is selected, the actual port is printed. This improves the reliability of platform startup by ensuring that a free port can be found. TEST PLAN ./lldb-server platform --listen *:0 Listening for a connection from port-number... Will appear on stdout (with other stuff potentially) Modified: lldb/trunk/include/lldb/Symbol/Type.h lldb/trunk/source/Symbol/Type.cpp lldb/trunk/tools/lldb-server/lldb-platform.cpp Modified: lldb/trunk/include/lldb/Symbol/Type.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/Type.h?rev=238173r1=238172r2=238173view=diff == --- lldb/trunk/include/lldb/Symbol/Type.h (original) +++ lldb/trunk/include/lldb/Symbol/Type.h Mon May 25 22:08:05 2015 @@ -305,7 +305,9 @@ protected: ClangASTType m_clang_type; struct Flags { -ResolveStateclang_type_resolve_state : 2; +// clang_type_resolve_state is a ResolveState enum +// using unsigned type here to work around a very noisy gcc warning +unsignedclang_type_resolve_state : 2; boolis_complete_objc_class : 1; } m_flags; Modified: lldb/trunk/source/Symbol/Type.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/Type.cpp?rev=238173r1=238172r2=238173view=diff == --- lldb/trunk/source/Symbol/Type.cpp (original) +++ lldb/trunk/source/Symbol/Type.cpp Mon May 25 22:08:05 2015 @@ -101,7 +101,7 @@ Type::Type m_decl (decl), m_clang_type (clang_type) { -m_flags.clang_type_resolve_state = (clang_type ? clang_type_resolve_state : eResolveStateUnresolved); +m_flags.SetResolveState(clang_type ? clang_type_resolve_state : eResolveStateUnresolved); m_flags.is_complete_objc_class = false; } @@ -118,7 +118,7 @@ Type::Type () : m_decl (), m_clang_type () { -m_flags.clang_type_resolve_state = eResolveStateUnresolved; +m_flags.SetResolveState(eResolveStateUnresolved); m_flags.is_complete_objc_class = false; } @@ -505,7 +505,7 @@ Type::ResolveClangType (ResolveState cla if (encoding_clang_type.IsValid()) { m_clang_type = encoding_clang_type; -m_flags.clang_type_resolve_state = encoding_type-m_flags.clang_type_resolve_state; + m_flags.SetResolveState(encoding_type-m_flags.clang_type_resolve_state); } } break; @@ -594,7 +594,7 @@ Type::ResolveClangType (ResolveState cla // Check if we have a forward reference to a class/struct/union/enum? if (m_clang_type.IsValid() m_flags.clang_type_resolve_state clang_type_resolve_state) { -m_flags.clang_type_resolve_state = eResolveStateFull; +m_flags.SetResolveState(eResolveStateFull); if (!m_clang_type.IsDefined ()) { // We have a forward declaration, we need to resolve it to a complete definition. Modified: lldb/trunk/tools/lldb-server/lldb-platform.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/lldb-platform.cpp?rev=238173r1=238172r2=238173view=diff == --- lldb/trunk/tools/lldb-server/lldb-platform.cpp (original) +++ lldb/trunk/tools/lldb-server/lldb-platform.cpp Mon May 25 22:08:05 2015 @@ -253,7 +253,6 @@ main_platform (int argc, char *argv[]) std::unique_ptrSocket listening_socket_up; Socket *socket = nullptr; -printf (Listening for a connection from %s...\n, listen_host_port.c_str()); const bool children_inherit_listen_socket = false; // the test suite makes many connections in parallel, let's not miss any. @@ -267,6 +266,7 @@ main_platform (int argc, char *argv[]) exit(socket_error); } listening_socket_up.reset(socket); +printf (Listening for a connection from %u...\n, listening_socket_up-GetLocalPortNumber()); do { GDBRemoteCommunicationServerPlatform platform; ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r238089 - Did some cleanup to stop us from leaking Pipe file descriptors.
I think that this CL introduced or exposed a 50% crash bug in the test suite https://llvm.org/bugs/show_bug.cgi?id=23644 ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r238043 - dotest.py - fixed a bug displaying usage
Author: vharron Date: Fri May 22 14:49:23 2015 New Revision: 238043 URL: http://llvm.org/viewvc/llvm-project?rev=238043view=rev Log: dotest.py - fixed a bug displaying usage ./dotest.py --help Modified: lldb/trunk/test/dosep.py lldb/trunk/test/dotest.py lldb/trunk/test/dotest_args.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=238043r1=238042r2=238043view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Fri May 22 14:49:23 2015 @@ -233,7 +233,10 @@ Run lldb test suite using a separate pro is_posix = (os.name == posix) dotest_argv = shlex.split(dotest_option_string, posix=is_posix) if dotest_option_string else [] -dotest_options = dotest_args.getArguments(dotest_argv) + +parser = dotest_args.create_parser() +dotest_options = dotest_args.parse_args(parser, dotest_argv) + if not dotest_options.s: # no session log directory, we need to add this to prevent # every dotest invocation from creating its own directory Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=238043r1=238042r2=238043view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Fri May 22 14:49:23 2015 @@ -491,7 +491,8 @@ def parseOptionsAndInitTestdirs(): platform_system = platform.system() platform_machine = platform.machine() -args = dotest_args.getArguments(sys.argv[1:]) +parser = dotest_args.create_parser() +args = dotest_args.parse_args(parser, sys.argv[1:]) if args.unset_env_varnames: for env_var in args.unset_env_varnames: Modified: lldb/trunk/test/dotest_args.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest_args.py?rev=238043r1=238042r2=238043view=diff == --- lldb/trunk/test/dotest_args.py (original) +++ lldb/trunk/test/dotest_args.py Fri May 22 14:49:23 2015 @@ -26,8 +26,7 @@ def parse_args(parser, argv): else: return parser.parse_args(args=argv) -def getArguments(argv): - +def create_parser(): parser = argparse.ArgumentParser(description='description', prefix_chars='+-', add_help=False) group = None @@ -114,4 +113,4 @@ def getArguments(argv): group = parser.add_argument_group('Test directories') group.add_argument('args', metavar='test-dir', nargs='*', help='Specify a list of directory names to search for test modules named after Test*.py (test discovery). If empty, search from the current working directory instead.') -return parse_args(parser, argv) +return parser ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r237602 - Refactored dotest arg parser so that it's accessible from dosep
Up for review http://reviews.llvm.org/D9937 On Thu, May 21, 2015 at 4:17 PM, Vince Harron vi...@nethacker.com wrote: Yeah, on it. On Thu, May 21, 2015 at 4:03 PM, Zachary Turner ztur...@google.com wrote: This breaks dotest.py --help, and many other command line options. Would you mind fixing this? I took a stab at it but it turns out to be a little more involved than I have time for. On Mon, May 18, 2015 at 12:45 PM Vince Harron vi...@nethacker.com wrote: Author: vharron Date: Mon May 18 14:40:54 2015 New Revision: 237602 URL: http://llvm.org/viewvc/llvm-project?rev=237602view=rev Log: Refactored dotest arg parser so that it's accessible from dosep This allows dosep to understand an act on dotest arguments Differential Revision: http://reviews.llvm.org/D9820 Added: lldb/trunk/test/dotest_args.py Modified: lldb/trunk/test/dosep.py lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237602r1=237601r2=237602view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Mon May 18 14:40:54 2015 @@ -25,6 +25,7 @@ import multiprocessing import os import platform import re +import dotest_args import shlex import subprocess import sys @@ -152,16 +153,16 @@ def walk_and_invoke(test_directory, test return (timed_out, failed, passed) -def getExpectedTimeouts(dotest_options): +def getExpectedTimeouts(platform_name): # returns a set of test filenames that might timeout # are we running against a remote target? -m = re.search('\sremote-(\w+)', dotest_options) -if m: -target = m.group(1) -remote = True -else: +if platform_name is None: target = sys.platform remote = False +else: +m = re.search('remote-(\w+)', platform_name) +target = m.group(1) +remote = True expected_timeout = set() @@ -225,7 +226,10 @@ Run lldb test suite using a separate pro help=The number of threads to use when running tests separately.) opts, args = parser.parse_args() -dotest_options = opts.dotest_options +dotest_option_string = opts.dotest_options + +dotest_argv = shlex.split(dotest_option_string) +dotest_options = dotest_args.getArguments(dotest_argv) # The root directory was specified on the command line if len(args) == 0: @@ -245,13 +249,13 @@ Run lldb test suite using a separate pro num_threads = 1 system_info = .join(platform.uname()) -(timed_out, failed, passed) = walk_and_invoke(test_directory, test_subdir, dotest_options, +(timed_out, failed, passed) = walk_and_invoke(test_directory, test_subdir, dotest_option_string, num_threads) timed_out = set(timed_out) num_tests = len(failed) + len(passed) # remove expected timeouts from failures -expected_timeout = getExpectedTimeouts(dotest_options) +expected_timeout = getExpectedTimeouts(dotest_options.lldb_platform_name) for xtime in expected_timeout: if xtime in timed_out: timed_out.remove(xtime) Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237602r1=237601r2=237602view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Mon May 18 14:40:54 2015 @@ -22,6 +22,7 @@ for available options. import commands import os +import dotest_args import errno import platform import progress @@ -34,26 +35,6 @@ import inspect import unittest2 import lldbtest_config -if sys.version_info = (2, 7): -argparse = __import__('argparse') -else: -argparse = __import__('argparse_compat') - -def parse_args(parser): - Returns an argument object. LLDB_TEST_ARGUMENTS environment variable can -be used to pass additional arguments if a compatible (=2.7) argparse -library is available. - -if sys.version_info = (2, 7): -args = ArgParseNamespace() - -if ('LLDB_TEST_ARGUMENTS' in os.environ): -print Arguments passed through environment: '%s' % os.environ['LLDB_TEST_ARGUMENTS'] -args = parser.parse_args([sys.argv[0]].__add__(os.environ['LLDB_TEST_ARGUMENTS'].split()),namespace=args) - -return parser.parse_args(namespace=args) -else: -return parser.parse_args() def is_exe(fpath): Returns true if fpath is an executable. @@ -388,9 +369,6 @@ def unique_string_match(yourentry,list): candidate = item return candidate -class ArgParseNamespace(object): -pass - def validate_categories(categories): For each category
[Lldb-commits] [lldb] r237878 - trivial log print fix
Author: vharron Date: Thu May 21 00:57:28 2015 New Revision: 237878 URL: http://llvm.org/viewvc/llvm-project?rev=237878view=rev Log: trivial log print fix Modified: lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237878r1=237877r2=237878view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Thu May 21 00:57:28 2015 @@ -951,7 +951,7 @@ def setupSysPath(): lldbtest_config.lldbExec = which('lldb') if lldbtest_config.lldbExec and not is_exe(lldbtest_config.lldbExec): -print '{}' is not a path to a valid executable +print '{}' is not a path to a valid executable.format(lldbtest_config.lldbExec) del lldbtest_config.lldbExec if not lldbtest_config.lldbExec: ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237925 - Add logging for XTIMEOUT/UnexpectedSuccess
Author: vharron Date: Thu May 21 13:18:52 2015 New Revision: 237925 URL: http://llvm.org/viewvc/llvm-project?rev=237925view=rev Log: Add logging for XTIMEOUT/UnexpectedSuccess If an expected timeout test times out, touch session-dir/ExpectedTimeout-test-name If an expected timeout test passes, touch session-dir/UnexpectedCompletion-test-name Differential Revision: http://reviews.llvm.org/D9843 Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237925r1=237924r2=237925view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Thu May 21 13:18:52 2015 @@ -190,6 +190,10 @@ def getExpectedTimeouts(platform_name): } return expected_timeout +def touch(fname, times=None): +with open(fname, 'a'): +os.utime(fname, times) + def main(): # We can't use sys.path[0] to determine the script directory # because it doesn't work under a debugger @@ -238,6 +242,9 @@ Run lldb test suite using a separate pro timestamp_started = datetime.datetime.now().strftime(%Y-%m-%d-%H_%M_%S) dotest_argv.append('-s') dotest_argv.append(timestamp_started) +dotest_options.s = timestamp_started + +session_dir = os.path.join(os.getcwd(), dotest_options.s) # The root directory was specified on the command line if len(args) == 0: @@ -268,6 +275,15 @@ Run lldb test suite using a separate pro if xtime in timed_out: timed_out.remove(xtime) failed.remove(xtime) +result = ExpectedTimeout +elif xtime in passed: +result = UnexpectedCompletion +else: +result = None # failed + +if result: +test_name = os.path.splitext(xtime)[0] +touch(os.path.join(session_dir, {}-{}.format(result, test_name))) print Ran %d tests. % num_tests if len(failed) 0: ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237921 - TestInlineStepping - made XFAIL more specific
Author: vharron Date: Thu May 21 13:07:16 2015 New Revision: 237921 URL: http://llvm.org/viewvc/llvm-project?rev=237921view=rev Log: TestInlineStepping - made XFAIL more specific Differential Revision: http://reviews.llvm.org/D9828 Modified: lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py Modified: lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py?rev=237921r1=237920r2=237921view=diff == --- lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py (original) +++ lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py Thu May 21 13:07:16 2015 @@ -23,7 +23,8 @@ class TestInlineStepping(TestBase): @expectedFailureFreeBSD('llvm.org/pr17214') @expectedFailureIcc # Not really a bug. ICC combines two inlined functions. @expectedFailureAll(llvm.org/pr23139, oslist=[linux], compiler=gcc, compiler_version=[=,4.9], archs=[i386]) -@expectedFailureLinux # failed 1/365 dosep runs, (i386-clang), TestInlineStepping.py:237 failed to stop at first breakpoint in main +# failed 1/365 dosep runs, (i386-clang), TestInlineStepping.py:237 failed to stop at first breakpoint in main +@expectedFailureAll(oslist=[linux], archs=[i386]) def test_with_dwarf_and_python_api(self): Test stepping over and into inlined functions. self.buildDwarf() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237932 - Fixed intermittent failures in TestGdbRemote*/TestLldbGdbServer
Author: vharron Date: Thu May 21 13:54:12 2015 New Revision: 237932 URL: http://llvm.org/viewvc/llvm-project?rev=237932view=rev Log: Fixed intermittent failures in TestGdbRemote*/TestLldbGdbServer test/tools/lldb-server/commandline/Test* were actually executing in their parent directory. This looks fine at first because they aren't compiling an inferior executable. Unfortunately, they still call make clean during their cleanup, which is likely causing all kinds of havok in tests running in the parent directory Differential Revision: http://reviews.llvm.org/D9869 Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteKill.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteProcessInfo.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteRegisterState.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteSingleStep.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py lldb/trunk/test/tools/lldb-server/TestLldbGdbServer.py lldb/trunk/test/tools/lldb-server/commandline/TestStubReverseConnect.py lldb/trunk/test/tools/lldb-server/commandline/TestStubSetSID.py lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py?rev=237932r1=237931r2=237932view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py Thu May 21 13:54:12 2015 @@ -6,6 +6,8 @@ from lldbtest import * class TestGdbRemoteAttach(gdbremote_testcase.GdbRemoteTestCaseBase): +mydir = TestBase.compute_mydir(__file__) + def attach_with_vAttach(self): # Start the inferior, start the debug monitor, nothing is attached yet. procs = self.prep_debug_monitor_and_inferior(inferior_args=[sleep:60]) Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py?rev=237932r1=237931r2=237932view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py Thu May 21 13:54:12 2015 @@ -5,6 +5,8 @@ from lldbtest import * class TestGdbRemoteAuxvSupport(gdbremote_testcase.GdbRemoteTestCaseBase): +mydir = TestBase.compute_mydir(__file__) + AUXV_SUPPORT_FEATURE_NAME = qXfer:auxv:read def has_auxv_support(self): Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py?rev=237932r1=237931r2=237932view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py Thu May 21 13:54:12 2015 @@ -5,6 +5,8 @@ from lldbtest import * class TestGdbRemoteExpeditedRegisters(gdbremote_testcase.GdbRemoteTestCaseBase): +mydir = TestBase.compute_mydir(__file__) + def gather_expedited_registers(self): # Setup the stub and set the gdb remote command stream. procs = self.prep_debug_monitor_and_inferior(inferior_args=[sleep:2]) Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteKill.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteKill.py?rev=237932r1=237931r2=237932view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteKill.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteKill.py Thu May 21 13:54:12 2015 @@ -6,6 +6,9 @@ import lldbgdbserverutils from lldbtest import * class TestGdbRemoteKill(gdbremote_testcase.GdbRemoteTestCaseBase): + +mydir = TestBase.compute_mydir(__file__) + def attach_commandline_kill_after_initial_stop(self): procs = self.prep_debug_monitor_and_inferior() self.test_sequence.add_log_lines([ Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteProcessInfo.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteProcessInfo.py?rev=237932r1=237931r2=237932view=diff == ---
[Lldb-commits] [lldb] r237926 - dotest.py - log session to a file instead of a StringIO class
Author: vharron Date: Thu May 21 13:20:21 2015 New Revision: 237926 URL: http://llvm.org/viewvc/llvm-project?rev=237926view=rev Log: dotest.py - log session to a file instead of a StringIO class That way, if the test gets killed (by a dosep timeout) we get to see the session trace Test Plan: Run dotest.py Kill it while it's running, check the session dir for Test* files Differential Revision: http://reviews.llvm.org/D9845 Modified: lldb/trunk/test/lldbtest.py Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=237926r1=237925r2=237926view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Thu May 21 13:20:21 2015 @@ -1145,7 +1145,11 @@ class Base(unittest2.TestCase): # Create a string buffer to record the session info, to be dumped into a # test case specific file if test failure is encountered. -self.session = StringIO.StringIO() +log_basename = self.getLogBasenameForCurrentTest() + +session_file = {}.log.format(log_basename) +unbuffered = 0 # 0 is the constant for unbuffered +self.session = open(log_basename, w, unbuffered) # Optimistically set __errored__, __failed__, __expected__ to False # initially. If the test errored/failed, the session info @@ -1487,8 +1491,8 @@ class Base(unittest2.TestCase): # formatted tracebacks. # # See http://docs.python.org/library/unittest.html#unittest.TestResult. -src_log_basename = self.getLogBasenameForCurrentTest() +# output tracebacks into session pairs = [] if self.__errored__: pairs = lldb.test_result.errors @@ -1502,41 +1506,45 @@ class Base(unittest2.TestCase): elif self.__skipped__: prefix = 'SkippedTest' elif self.__unexpected__: -prefix = UnexpectedSuccess +prefix = 'UnexpectedSuccess' else: -prefix = Success -if not lldbtest_config.log_success: -# delete log files, return (don't output trace) -for i in glob.glob(src_log_basename + *): -os.unlink(i) -return - -# rename all log files - prepend with result -dst_log_basename = self.getLogBasenameForCurrentTest(prefix) -for src in glob.glob(self.getLogBasenameForCurrentTest() + *): -dst = src.replace(src_log_basename, dst_log_basename) -os.rename(src, dst) +prefix = 'Success' if not self.__unexpected__ and not self.__skipped__: for test, traceback in pairs: if test is self: print self.session, traceback +# put footer (timestamp/rerun instructions) into session testMethod = getattr(self, self._testMethodName) if getattr(testMethod, __benchmarks_test__, False): benchmarks = True else: benchmarks = False -pname = {}.log.format(dst_log_basename) -with open(pname, w) as f: -import datetime -print f, Session info generated @, datetime.datetime.now().ctime() -print f, self.session.getvalue() -print f, To rerun this test, issue the following command from the 'test' directory:\n -print f, ./dotest.py %s -v %s %s % (self.getRunOptions(), - ('+b' if benchmarks else '-t'), - self.getRerunArgs()) +import datetime +print self.session, Session info generated @, datetime.datetime.now().ctime() +print self.session, To rerun this test, issue the following command from the 'test' directory:\n +print self.session, ./dotest.py %s -v %s %s % (self.getRunOptions(), + ('+b' if benchmarks else '-t'), + self.getRerunArgs()) +self.session.close() +del self.session + +# process the log files +src_log_basename = self.getLogBasenameForCurrentTest() +log_files_for_this_test = glob.glob(src_log_basename + *) + +if prefix != 'Success' or lldbtest_config.log_success: +# keep all log files, rename them to include prefix +dst_log_basename = self.getLogBasenameForCurrentTest(prefix) +for src in log_files_for_this_test: +dst = src.replace(src_log_basename, dst_log_basename) +os.rename(src, dst) +else: +# success! (and we don't want log files) delete log files +for log_file in log_files_for_this_test: +os.unlink(log_file) # # Config. methods
[Lldb-commits] [lldb] r237933 - XPASS a bunch of GdbRemote/LldbGdbServer tests
Author: vharron Date: Thu May 21 13:55:39 2015 New Revision: 237933 URL: http://llvm.org/viewvc/llvm-project?rev=237933view=rev Log: XPASS a bunch of GdbRemote/LldbGdbServer tests Depends on r237932 Fixed intermittent failures in TestGdbRemote*/TestLldbGdbServer Test Plan: Ran dosep 100x, no failures in these tests Differential Revision: http://reviews.llvm.org/D9892 Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteRegisterState.py lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py lldb/trunk/test/tools/lldb-server/TestLldbGdbServer.py Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py?rev=237933r1=237932r2=237933view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteAttach.py Thu May 21 13:55:39 2015 @@ -50,7 +50,6 @@ class TestGdbRemoteAttach(gdbremote_test self.set_inferior_startup_attach_manually() self.attach_with_vAttach() -@expectedFailureLinux(https://llvm.org/bugs/show_bug.cgi?id=23250;) #intermittent failure on the linux build bot @llgs_test @dwarf_test def test_attach_with_vAttach_llgs_dwarf(self): Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py?rev=237933r1=237932r2=237933view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py Thu May 21 13:55:39 2015 @@ -112,7 +112,6 @@ class TestGdbRemoteAuxvSupport(gdbremote @llgs_test @dwarf_test -@expectedFailureLinux('llvm.org/pr22930') # fails 2/34 builds on lldb-x86_64-ubuntu-14.04-cmake def test_auxv_data_is_correct_size_llgs_dwarf(self): self.init_llgs_test() self.buildDwarf() @@ -153,7 +152,6 @@ class TestGdbRemoteAuxvSupport(gdbremote @llgs_test @dwarf_test -@expectedFailureLinux('http://llvm.org/pr23545') # build failure 1/365 dosep builds def test_auxv_keys_look_valid_llgs_dwarf(self): self.init_llgs_test() self.buildDwarf() @@ -201,7 +199,6 @@ class TestGdbRemoteAuxvSupport(gdbremote @llgs_test @dwarf_test -@expectedFailureLinux('llvm.org/pr22930') # fails 1/34 builds on lldb-x86_64-ubuntu-14.04-cmake def test_auxv_chunked_reads_work_llgs_dwarf(self): self.init_llgs_test() self.buildDwarf() Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteRegisterState.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteRegisterState.py?rev=237933r1=237932r2=237933view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteRegisterState.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteRegisterState.py Thu May 21 13:55:39 2015 @@ -100,7 +100,6 @@ class TestGdbRemoteRegisterState(gdbremo self.set_inferior_startup_launch() self.grp_register_save_restore_works(USE_THREAD_SUFFIX) -@expectedFailureLinux(https://llvm.org/bugs/show_bug.cgi?id=23251;) # failing intermittently on the linux build bot @llgs_test @dwarf_test def test_grp_register_save_restore_works_with_suffix_llgs_dwarf(self): Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py?rev=237933r1=237932r2=237933view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py Thu May 21 13:55:39 2015 @@ -81,7 +81,6 @@ class TestGdbRemote_qThreadStopInfo(gdbr @debugserver_test @dsym_test -@expectedFailureDarwin # failed 1/134 dosep runs, make MAKE_DSYM=YES ARCH=x86_64 CC=clang failed def test_qThreadStopInfo_works_for_multiple_threads_debugserver_dsym(self): self.init_debugserver_test() self.buildDsym() Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py?rev=237933r1=237932r2=237933view=diff == ---
[Lldb-commits] [lldb] r237923 - Modify dosep.py to add default session dir parameter
Author: vharron Date: Thu May 21 13:15:09 2015 New Revision: 237923 URL: http://llvm.org/viewvc/llvm-project?rev=237923view=rev Log: Modify dosep.py to add default session dir parameter This ensures that all spawned dotest instances store their traces in the same location. Test Plan: run dosep.py with and without a -s option for dotest cd lldb/test ./dosep.py ./dosep.py -o '-s /tmp/traces' Differential Revision: http://reviews.llvm.org/D9839 Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237923r1=237922r2=237923view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Thu May 21 13:15:09 2015 @@ -70,7 +70,7 @@ def call_with_timeout(command, timeout): return (ePassed if subprocess.call(command, stdin=subprocess.PIPE) == 0 else eFailed) -def process_dir(root, files, test_root, dotest_options): +def process_dir(root, files, test_root, dotest_argv): Examine a directory for tests, and invoke any found within it. timed_out = [] failed = [] @@ -87,10 +87,8 @@ def process_dir(root, files, test_root, continue script_file = os.path.join(test_root, dotest.py) -is_posix = (os.name == posix) -split_args = shlex.split(dotest_options, posix=is_posix) if dotest_options else [] command = ([sys.executable, script_file] + - split_args + + dotest_argv + [-p, name, root]) timeout_name = os.path.basename(os.path.splitext(name)[0]).upper() @@ -113,10 +111,10 @@ out_q = None def process_dir_worker(arg_tuple): Worker thread main loop when in multithreaded mode. Takes one directory specification at a time and works on it. -(root, files, test_root, dotest_options) = arg_tuple -return process_dir(root, files, test_root, dotest_options) +(root, files, test_root, dotest_argv) = arg_tuple +return process_dir(root, files, test_root, dotest_argv) -def walk_and_invoke(test_directory, test_subdir, dotest_options, num_threads): +def walk_and_invoke(test_directory, test_subdir, dotest_argv, num_threads): Look for matched files and invoke test driver on each one. In single-threaded mode, each test driver is invoked directly. In multi-threaded mode, submit each test driver to a worker @@ -129,7 +127,7 @@ def walk_and_invoke(test_directory, test # Collect the test files that we'll run. test_work_items = [] for root, dirs, files in os.walk(test_subdir, topdown=False): -test_work_items.append((root, files, test_directory, dotest_options)) +test_work_items.append((root, files, test_directory, dotest_argv)) # Run the items, either in a pool (for multicore speedup) or # calling each individually. @@ -229,8 +227,17 @@ Run lldb test suite using a separate pro opts, args = parser.parse_args() dotest_option_string = opts.dotest_options -dotest_argv = shlex.split(dotest_option_string) +is_posix = (os.name == posix) +dotest_argv = shlex.split(dotest_option_string, posix=is_posix) if dotest_option_string else [] dotest_options = dotest_args.getArguments(dotest_argv) +if not dotest_options.s: +# no session log directory, we need to add this to prevent +# every dotest invocation from creating its own directory +import datetime +# The windows platforms don't like ':' in the pathname. +timestamp_started = datetime.datetime.now().strftime(%Y-%m-%d-%H_%M_%S) +dotest_argv.append('-s') +dotest_argv.append(timestamp_started) # The root directory was specified on the command line if len(args) == 0: @@ -250,7 +257,7 @@ Run lldb test suite using a separate pro num_threads = 1 system_info = .join(platform.uname()) -(timed_out, failed, passed) = walk_and_invoke(test_directory, test_subdir, dotest_option_string, +(timed_out, failed, passed) = walk_and_invoke(test_directory, test_subdir, dotest_argv, num_threads) timed_out = set(timed_out) num_tests = len(failed) + len(passed) ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237928 - Fix lldb executable discovery on OS X
Author: vharron Date: Thu May 21 13:21:07 2015 New Revision: 237928 URL: http://llvm.org/viewvc/llvm-project?rev=237928view=rev Log: Fix lldb executable discovery on OS X It was broken by r237632 Differential Revision: http://reviews.llvm.org/D9846 Modified: lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237928r1=237927r2=237928view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Thu May 21 13:21:07 2015 @@ -850,7 +850,7 @@ def getOutputPaths(lldbRootDirectory): result = [] if sys.platform == 'darwin': -result.append(getXcodeOutputPaths(lldbRootDirectory)) +result.extend(getXcodeOutputPaths(lldbRootDirectory)) # cmake builds? look for build or build/host folder next to llvm directory # lldb is located in llvm/tools/lldb so we need to go up three levels ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] [TestChangeValueAPI] Remove expectedFailureLinux decorator.
Please land it if it's still valid. On Thu, May 21, 2015 at 11:22 AM, Siva Chandra sivachan...@google.com wrote: After rebasing, this change is now merely a removal of expectedFailureGcc. http://reviews.llvm.org/D9116 Files: test/python_api/value/change_values/TestChangeValueAPI.py Index: test/python_api/value/change_values/TestChangeValueAPI.py === --- test/python_api/value/change_values/TestChangeValueAPI.py +++ test/python_api/value/change_values/TestChangeValueAPI.py @@ -41,7 +41,6 @@ self.check_line = line_number('main.c', '// Stop here and check values') self.end_line = line_number ('main.c', '// Set a breakpoint here at the end') -@expectedFailureGcc # llvm.org/pr15039: If GCC is the test compiler, stdout is not available via lldb.SBProcess.GetSTDOUT() @expectedFailureFreeBSD(llvm.org/pr15039 test fails intermittently on FreeBSD) def change_value_api(self, exe_name): Exercise some SBValue APIs. EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237931 - Re-enable packet logging for GdbRemote/LldbServer tests
Author: vharron Date: Thu May 21 13:51:20 2015 New Revision: 237931 URL: http://llvm.org/viewvc/llvm-project?rev=237931view=rev Log: Re-enable packet logging for GdbRemote/LldbServer tests Creates logs in session dir Differential Revision: http://reviews.llvm.org/D9847 Modified: lldb/trunk/test/lldbtest.py lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=237931r1=237930r2=237931view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Thu May 21 13:51:20 2015 @@ -1145,11 +1145,11 @@ class Base(unittest2.TestCase): # Create a string buffer to record the session info, to be dumped into a # test case specific file if test failure is encountered. -log_basename = self.getLogBasenameForCurrentTest() +self.log_basename = self.getLogBasenameForCurrentTest() -session_file = {}.log.format(log_basename) +session_file = {}.log.format(self.log_basename) unbuffered = 0 # 0 is the constant for unbuffered -self.session = open(log_basename, w, unbuffered) +self.session = open(session_file, w, unbuffered) # Optimistically set __errored__, __failed__, __expected__ to False # initially. If the test errored/failed, the session info @@ -1532,14 +1532,13 @@ class Base(unittest2.TestCase): del self.session # process the log files -src_log_basename = self.getLogBasenameForCurrentTest() -log_files_for_this_test = glob.glob(src_log_basename + *) +log_files_for_this_test = glob.glob(self.log_basename + *) if prefix != 'Success' or lldbtest_config.log_success: # keep all log files, rename them to include prefix dst_log_basename = self.getLogBasenameForCurrentTest(prefix) for src in log_files_for_this_test: -dst = src.replace(src_log_basename, dst_log_basename) +dst = src.replace(self.log_basename, dst_log_basename) os.rename(src, dst) else: # success! (and we don't want log files) delete log files Modified: lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py?rev=237931r1=237930r2=237931view=diff == --- lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py (original) +++ lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py Thu May 21 13:51:20 2015 @@ -168,6 +168,11 @@ class GdbRemoteTestCaseBase(TestBase): self.skipTest(lldb-server exe not found) self.debug_monitor_extra_args = [gdbserver] + +if len(lldbtest_config.channels) 0: + self.debug_monitor_extra_args.append(--log-file={}-server.log.format(self.log_basename)) + self.debug_monitor_extra_args.append(--log-channels={}.format(:.join(lldbtest_config.channels))) + if use_named_pipe: (self.named_pipe_path, self.named_pipe, self.named_pipe_fd) = self.create_named_pipe() @@ -175,7 +180,7 @@ class GdbRemoteTestCaseBase(TestBase): self.debug_monitor_exe = get_debugserver_exe() if not self.debug_monitor_exe: self.skipTest(debugserver exe not found) -self.debug_monitor_extra_args = [--log-file=/tmp/packets-{}.log.format(self._testMethodName), --log-flags=0x80] +self.debug_monitor_extra_args = [--log-file={}-server.log.format(self.log_basename), --log-flags=0x80] if use_named_pipe: (self.named_pipe_path, self.named_pipe, self.named_pipe_fd) = self.create_named_pipe() # The debugserver stub has a race on handling the 'k' command, so it sends an X09 right away, then sends the real X notification ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r237946 - Don't import module `lock` at global scope.
Sorry for the break, thanks for the fix/lesson. On Thu, May 21, 2015 at 1:16 PM, Zachary Turner ztur...@google.com wrote: Author: zturner Date: Thu May 21 15:16:02 2015 New Revision: 237946 URL: http://llvm.org/viewvc/llvm-project?rev=237946view=rev Log: Don't import module `lock` at global scope. `lock` depends on `fcntl`, which doesn't exist on Windows. Until someone implements an equivalent locking mechanism on Windows, we can't have lock imported globally. Modified: lldb/trunk/test/lldbtest.py Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=237946r1=237945r2=237946view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Thu May 21 15:16:02 2015 @@ -33,7 +33,6 @@ $ import abc import glob -import lock import os, sys, traceback import os.path import re @@ -961,6 +960,7 @@ class Base(unittest2.TestCase): os.chdir(os.path.join(os.environ[LLDB_TEST], cls.mydir)) if debug_confirm_directory_exclusivity: +import lock cls.dir_lock = lock.Lock(os.path.join(full_dir, .dirlock)) try: cls.dir_lock.try_acquire() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r237888 - XFAIL TestEvents on Linux bacuse it is flaky
It is very important to put a comment next to the XFAIL that describes the frequency. For example, this fails for me in 1/100 dosep runs. That way, someone investigating doesn't try it a few times and re-enable. If you are going to modify the comment for this test, please link a bug because I have some logs from a fail run I'd like to attach. On May 21, 2015 3:23 AM, Tamas Berghammer tbergham...@google.com wrote: Author: tberghammer Date: Thu May 21 05:16:55 2015 New Revision: 237888 URL: http://llvm.org/viewvc/llvm-project?rev=237888view=rev Log: XFAIL TestEvents on Linux bacuse it is flaky Modified: lldb/trunk/test/python_api/event/TestEvents.py Modified: lldb/trunk/test/python_api/event/TestEvents.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/python_api/event/TestEvents.py?rev=237888r1=237887r2=237888view=diff == --- lldb/trunk/test/python_api/event/TestEvents.py (original) +++ lldb/trunk/test/python_api/event/TestEvents.py Thu May 21 05:16:55 2015 @@ -54,6 +54,7 @@ class EventAPITestCase(TestBase): @skipIfFreeBSD # llvm.org/pr21325 @python_api_test @dwarf_test +@expectedFailureLinux def test_add_listener_to_broadcaster_with_dwarf(self): Exercise some SBBroadcaster APIs. self.buildDwarf() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r237602 - Refactored dotest arg parser so that it's accessible from dosep
Yeah, on it. On Thu, May 21, 2015 at 4:03 PM, Zachary Turner ztur...@google.com wrote: This breaks dotest.py --help, and many other command line options. Would you mind fixing this? I took a stab at it but it turns out to be a little more involved than I have time for. On Mon, May 18, 2015 at 12:45 PM Vince Harron vi...@nethacker.com wrote: Author: vharron Date: Mon May 18 14:40:54 2015 New Revision: 237602 URL: http://llvm.org/viewvc/llvm-project?rev=237602view=rev Log: Refactored dotest arg parser so that it's accessible from dosep This allows dosep to understand an act on dotest arguments Differential Revision: http://reviews.llvm.org/D9820 Added: lldb/trunk/test/dotest_args.py Modified: lldb/trunk/test/dosep.py lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237602r1=237601r2=237602view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Mon May 18 14:40:54 2015 @@ -25,6 +25,7 @@ import multiprocessing import os import platform import re +import dotest_args import shlex import subprocess import sys @@ -152,16 +153,16 @@ def walk_and_invoke(test_directory, test return (timed_out, failed, passed) -def getExpectedTimeouts(dotest_options): +def getExpectedTimeouts(platform_name): # returns a set of test filenames that might timeout # are we running against a remote target? -m = re.search('\sremote-(\w+)', dotest_options) -if m: -target = m.group(1) -remote = True -else: +if platform_name is None: target = sys.platform remote = False +else: +m = re.search('remote-(\w+)', platform_name) +target = m.group(1) +remote = True expected_timeout = set() @@ -225,7 +226,10 @@ Run lldb test suite using a separate pro help=The number of threads to use when running tests separately.) opts, args = parser.parse_args() -dotest_options = opts.dotest_options +dotest_option_string = opts.dotest_options + +dotest_argv = shlex.split(dotest_option_string) +dotest_options = dotest_args.getArguments(dotest_argv) # The root directory was specified on the command line if len(args) == 0: @@ -245,13 +249,13 @@ Run lldb test suite using a separate pro num_threads = 1 system_info = .join(platform.uname()) -(timed_out, failed, passed) = walk_and_invoke(test_directory, test_subdir, dotest_options, +(timed_out, failed, passed) = walk_and_invoke(test_directory, test_subdir, dotest_option_string, num_threads) timed_out = set(timed_out) num_tests = len(failed) + len(passed) # remove expected timeouts from failures -expected_timeout = getExpectedTimeouts(dotest_options) +expected_timeout = getExpectedTimeouts(dotest_options.lldb_platform_name) for xtime in expected_timeout: if xtime in timed_out: timed_out.remove(xtime) Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237602r1=237601r2=237602view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Mon May 18 14:40:54 2015 @@ -22,6 +22,7 @@ for available options. import commands import os +import dotest_args import errno import platform import progress @@ -34,26 +35,6 @@ import inspect import unittest2 import lldbtest_config -if sys.version_info = (2, 7): -argparse = __import__('argparse') -else: -argparse = __import__('argparse_compat') - -def parse_args(parser): - Returns an argument object. LLDB_TEST_ARGUMENTS environment variable can -be used to pass additional arguments if a compatible (=2.7) argparse -library is available. - -if sys.version_info = (2, 7): -args = ArgParseNamespace() - -if ('LLDB_TEST_ARGUMENTS' in os.environ): -print Arguments passed through environment: '%s' % os.environ['LLDB_TEST_ARGUMENTS'] -args = parser.parse_args([sys.argv[0]].__add__(os.environ['LLDB_TEST_ARGUMENTS'].split()),namespace=args) - -return parser.parse_args(namespace=args) -else: -return parser.parse_args() def is_exe(fpath): Returns true if fpath is an executable. @@ -388,9 +369,6 @@ def unique_string_match(yourentry,list): candidate = item return candidate -class ArgParseNamespace(object): -pass - def validate_categories(categories): For each category in categories, ensure that it's a valid category (or a prefix thereof). If a category is invalid, print a message
[Lldb-commits] [lldb] r237935 - dotest.py - debug feature that helps find dosep races
Author: vharron Date: Thu May 21 14:09:29 2015 New Revision: 237935 URL: http://llvm.org/viewvc/llvm-project?rev=237935view=rev Log: dotest.py - debug feature that helps find dosep races SUMMARY dosep.py starts lots and lots of dotest instances. This option helps you find if two (or more) dotest instances are using the same directory at the same time. Enable it to cause test failures and stderr messages if dotest instances try to run in the same directory simultaneously. It is disabled by default because it litters the test directories with .dirlock files TEST PLAN Set lldbtest.debug_confirm_directory_exclusivity = True run ./dosep.py Differential Revision: http://reviews.llvm.org/D9868 Modified: lldb/trunk/test/lldbtest.py lldb/trunk/test/lock.py Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=237935r1=237934r2=237935view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Thu May 21 14:09:29 2015 @@ -33,6 +33,7 @@ $ import abc import glob +import lock import os, sys, traceback import os.path import re @@ -47,6 +48,14 @@ import lldbtest_config import lldbutil from _pyio import __metaclass__ +# dosep.py starts lots and lots of dotest instances +# This option helps you find if two (or more) dotest instances are using the same +# directory at the same time +# Enable it to cause test failures and stderr messages if dotest instances try to run in +# the same directory simultaneously +# it is disabled by default because it litters the test directories with .dirlock files +debug_confirm_directory_exclusivity = False + # See also dotest.parseOptionsAndInitTestdirs(), where the environment variables # LLDB_COMMAND_TRACE and LLDB_DO_CLEANUP are set from '-t' and '-r dir' options. @@ -936,7 +945,6 @@ class Base(unittest2.TestCase): Python unittest framework class setup fixture. Do current directory manipulation. - # Fail fast if 'mydir' attribute is not overridden. if not cls.mydir or len(cls.mydir) == 0: raise Exception(Subclasses must override the 'mydir' attribute.) @@ -947,10 +955,26 @@ class Base(unittest2.TestCase): # Change current working directory if ${LLDB_TEST} is defined. # See also dotest.py which sets up ${LLDB_TEST}. if (LLDB_TEST in os.environ): +full_dir = os.path.join(os.environ[LLDB_TEST], cls.mydir) if traceAlways: -print sys.stderr, Change dir to:, os.path.join(os.environ[LLDB_TEST], cls.mydir) +print sys.stderr, Change dir to:, full_dir os.chdir(os.path.join(os.environ[LLDB_TEST], cls.mydir)) +if debug_confirm_directory_exclusivity: +cls.dir_lock = lock.Lock(os.path.join(full_dir, .dirlock)) +try: +cls.dir_lock.try_acquire() +# write the class that owns the lock into the lock file +cls.dir_lock.handle.write(cls.__name__) +except IOError as ioerror: +# nothing else should have this directory lock +# wait here until we get a lock +cls.dir_lock.acquire() +# read the previous owner from the lock file +lock_id = cls.dir_lock.handle.read() +print sys.stderr, LOCK ERROR: {} wants to lock '{}' but it is already locked by '{}'.format(cls.__name__, full_dir, lock_id) +raise ioerror + # Set platform context. if platformIsDarwin(): cls.platformContext = _PlatformContext('DYLD_LIBRARY_PATH', 'lib', 'dylib') @@ -982,6 +1006,10 @@ class Base(unittest2.TestCase): exc_type, exc_value, exc_tb = sys.exc_info() traceback.print_exception(exc_type, exc_value, exc_tb) +if debug_confirm_directory_exclusivity: +cls.dir_lock.release() +del cls.dir_lock + # Restore old working directory. if traceAlways: print sys.stderr, Restore dir to:, cls.oldcwd Modified: lldb/trunk/test/lock.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lock.py?rev=237935r1=237934r2=237935view=diff == --- lldb/trunk/test/lock.py (original) +++ lldb/trunk/test/lock.py Thu May 21 14:09:29 2015 @@ -10,12 +10,16 @@ class Lock: def __init__(self, filename): self.filename = filename # This will create it if it does not exist already -self.handle = open(filename, 'w') +unbuffered = 0 +self.handle = open(filename, 'a+', unbuffered) -# Bitwise OR fcntl.LOCK_NB if you need a non-blocking lock def acquire(self): fcntl.flock(self.handle, fcntl.LOCK_EX) +# will throw IOError if unavailable +def
Re: [Lldb-commits] Relanding - Enable multithreaded debugging on Windows.
I can't reproduce this buildbot failure on my local Linux machine. Do you know exactly which buildbot reported the failure? lldb-x86_64-ubuntu-14.04-cmake It's as if the patch didn't remove the old main.c. I've since re-landed the Windows portion of this patch, and everything has remained green. I'm therefore going to try the common changes again. If it breaks this time, I want to force the buildbot to do a clean build. If it still breaks, I'll revert. Okay. I think we do a clean checkout every build FWIW ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r235280 - Fix LLDB ARM GCC4.7 broken build
JFYI, we are focusing our efforts around gcc 4.9 and 4.8 4.7 failures can be XFAIL'd for now as far as we're concerned. On Sun, Apr 19, 2015 at 2:36 PM, Omair Javaid omair.jav...@linaro.org wrote: Author: omjavaid Date: Sun Apr 19 16:36:06 2015 New Revision: 235280 URL: http://llvm.org/viewvc/llvm-project?rev=235280view=rev Log: Fix LLDB ARM GCC4.7 broken build Modified: lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp Modified: lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp?rev=235280r1=235279r2=235280view=diff == --- lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp (original) +++ lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp Sun Apr 19 16:36:06 2015 @@ -3956,7 +3956,7 @@ NativeProcessLinux::SingleStep(lldb::tid if (error.Fail()) return error; -m_threads_stepping_with_breakpoint.emplace(tid, next_pc); +m_threads_stepping_with_breakpoint.insert({tid, next_pc}); error = Resume(tid, signo); if (error.Fail()) ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237600 - Refactored lldb executable name discovery
Author: vharron Date: Mon May 18 14:39:03 2015 New Revision: 237600 URL: http://llvm.org/viewvc/llvm-project?rev=237600view=rev Log: Refactored lldb executable name discovery The lldb executable was referenced through the code by 7 different (effectively) global variables. global lldbExecutablePath global lldbExecutable os.environ['LLDB_EXEC'] os.environ['LLDB_TEST'] dotest.lldbExec dotest.lldbHere lldbtest.lldbExec This change uses one global variable lldbtest_config.lldbExec to replace them all. Differential Revision: http://reviews.llvm.org/D9817 Modified: lldb/trunk/test/benchmarks/disassembly/TestDisassembly.py lldb/trunk/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py lldb/trunk/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py lldb/trunk/test/benchmarks/expression/TestExpressionCmd.py lldb/trunk/test/benchmarks/expression/TestRepeatedExprs.py lldb/trunk/test/benchmarks/frame_variable/TestFrameVariableResponse.py lldb/trunk/test/benchmarks/startup/TestStartupDelays.py lldb/trunk/test/benchmarks/stepping/TestRunHooksThenSteppings.py lldb/trunk/test/benchmarks/stepping/TestSteppingSpeed.py lldb/trunk/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py lldb/trunk/test/dotest.py lldb/trunk/test/driver/batch_mode/TestBatchMode.py lldb/trunk/test/functionalities/command_regex/TestCommandRegex.py lldb/trunk/test/functionalities/completion/TestCompletion.py lldb/trunk/test/functionalities/embedded_interpreter/TestConvenienceVariables.py lldb/trunk/test/functionalities/format/TestFormats.py lldb/trunk/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py lldb/trunk/test/functionalities/stop-hook/TestStopHookMechanism.py lldb/trunk/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py lldb/trunk/test/lldbpexpect.py lldb/trunk/test/lldbtest.py lldb/trunk/test/lldbtest_config.py lldb/trunk/test/terminal/TestSTTYBeforeAndAfter.py lldb/trunk/test/tools/lldb-server/lldbgdbserverutils.py Modified: lldb/trunk/test/benchmarks/disassembly/TestDisassembly.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/benchmarks/disassembly/TestDisassembly.py?rev=237600r1=237599r2=237600view=diff == --- lldb/trunk/test/benchmarks/disassembly/TestDisassembly.py (original) +++ lldb/trunk/test/benchmarks/disassembly/TestDisassembly.py Mon May 18 14:39:03 2015 @@ -15,7 +15,7 @@ class DisassembleDriverMainLoop(BenchBas def setUp(self): -Note that lldbExec can be specified with the LLDB_EXEC env variable (see +Note that lldbtest_config.lldbExec can be specified with the LLDB_EXEC env variable (see dotest.py), and gdbExec can be specified with the GDB_EXEC env variable. This provides a flexibility in specifying different versions of gdb for comparison purposes. @@ -28,7 +28,7 @@ class DisassembleDriverMainLoop(BenchBas else: self.gdbExec = gdb -self.exe = self.lldbHere +self.exe = lldbtest_config.lldbExec self.function = 'Driver::MainLoop()' self.lldb_avg = None self.gdb_avg = None @@ -41,7 +41,7 @@ class DisassembleDriverMainLoop(BenchBas def test_run_lldb_then_gdb(self): Test disassembly on a large function with lldb vs. gdb. print -print lldb path: %s % self.lldbExec +print lldb path: %s % lldbtest_config.lldbExec print gdb path: %s % self.gdbExec print @@ -56,7 +56,7 @@ class DisassembleDriverMainLoop(BenchBas def test_run_gdb_then_lldb(self): Test disassembly on a large function with lldb vs. gdb. print -print lldb path: %s % self.lldbExec +print lldb path: %s % lldbtest_config.lldbExec print gdb path: %s % self.gdbExec print @@ -73,7 +73,7 @@ class DisassembleDriverMainLoop(BenchBas prompt = self.child_prompt # So that the child gets torn down after the test. -self.child = pexpect.spawn('%s %s %s' % (self.lldbExec, self.lldbOption, exe)) +self.child = pexpect.spawn('%s %s %s' % (lldbtest_config.lldbExec, self.lldbOption, exe)) child = self.child # Turn on logging for what the child sends back. Modified: lldb/trunk/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py?rev=237600r1=237599r2=237600view=diff == --- lldb/trunk/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py (original) +++ lldb/trunk/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py Mon May 18 14:39:03 2015 @@ -16,7 +16,7 @@ class AttachThenDisassemblyBench(BenchBa if
[Lldb-commits] [lldb] r237603 - Fixes errors in remote tests
Author: vharron Date: Mon May 18 14:44:19 2015 New Revision: 237603 URL: http://llvm.org/viewvc/llvm-project?rev=237603view=rev Log: Fixes errors in remote tests Modified: lldb/trunk/test/tools/lldb-server/lldbgdbserverutils.py Modified: lldb/trunk/test/tools/lldb-server/lldbgdbserverutils.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/lldbgdbserverutils.py?rev=237603r1=237602r2=237603view=diff == --- lldb/trunk/test/tools/lldb-server/lldbgdbserverutils.py (original) +++ lldb/trunk/test/tools/lldb-server/lldbgdbserverutils.py Mon May 18 14:44:19 2015 @@ -67,7 +67,7 @@ def get_lldb_server_exe(): if LLDB_DEBUGSERVER_PATH in os.environ: return os.environ[LLDB_DEBUGSERVER_PATH] -return _get_debug_monitor_from_lldb(lldb_exe, lldb-server) +return _get_debug_monitor_from_lldb(lldbtest_config.lldbExec, lldb-server) def get_debugserver_exe(): Return the debugserver exe path. ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237665 - dotest - minor doc fix
Author: vharron Date: Tue May 19 00:10:22 2015 New Revision: 237665 URL: http://llvm.org/viewvc/llvm-project?rev=237665view=rev Log: dotest - minor doc fix Modified: lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237665r1=237664r2=237665view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Tue May 19 00:10:22 2015 @@ -333,9 +333,9 @@ $ ./dotest.py --channel lldb all --cha These log files are written to: -session-dir/test-id.log (logs from lldb host process) +session-dir/test-id-host.log (logs from lldb host process) session-dir/test-id-server.log (logs from debugserver/lldb-server) -session-dir/test-id-trace-test-result.log (console logs) +session-dir/test-id-test-result.log (console logs) By default, logs from successful runs are deleted. Use the --log-success flag to create reference logs for debugging. ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237632 - Make it possible to run dotest on Linux without any parameters
Author: vharron Date: Mon May 18 18:07:18 2015 New Revision: 237632 URL: http://llvm.org/viewvc/llvm-project?rev=237632view=rev Log: Make it possible to run dotest on Linux without any parameters dotest will select clang-3.5 by default and fall back on clang/gcc dotest will look for the lldb executable in the typical cmake output locations: {lldb}/../../../build/bin (next to llvm directory) {lldb}/../../../build/host/bin (next to llvm directory) {lldb}/../build/bin (next to lldb directory) {lldb}/../build/host/bin (next to lldb directory) Modified: lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237632r1=237631r2=237632view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Mon May 18 18:07:18 2015 @@ -523,7 +523,12 @@ def parseOptionsAndInitTestdirs(): if platform_system == 'Darwin' and args.apple_sdk: compilers = [commands.getoutput('xcrun -sdk %s -find clang 2 /dev/null' % (args.apple_sdk))] else: -compilers = ['clang'] +# 'clang' on ubuntu 14.04 is 3.4 so we try clang-3.5 first +candidateCompilers = ['clang-3.5', 'clang', 'gcc'] +for candidate in candidateCompilers: +if which(candidate): +compilers = [candidate] +break if args.channels: lldbtest_config.channels = args.channels @@ -845,13 +850,18 @@ def getOutputPaths(lldbRootDirectory): result = [] if sys.platform == 'darwin': -result.extend(getXcodeOutputPaths(lldbRootDirectory)) +result.append(getXcodeOutputPaths(lldbRootDirectory)) # cmake builds? look for build or build/host folder next to llvm directory -# lldb is located in llvm/tools/lldb +# lldb is located in llvm/tools/lldb so we need to go up three levels llvmParentDir = os.path.abspath(os.path.join(lldbRootDirectory, os.pardir, os.pardir, os.pardir)) -result.extend(os.path.join(llvmParentDir, 'build', 'bin')) -result.extend(os.path.join(llvmParentDir, 'build', 'host', 'bin')) +result.append(os.path.join(llvmParentDir, 'build', 'bin')) +result.append(os.path.join(llvmParentDir, 'build', 'host', 'bin')) + +# some cmake developers keep their build directory beside their lldb directory +lldbParentDir = os.path.abspath(os.path.join(lldbRootDirectory, os.pardir)) +result.append(os.path.join(lldbParentDir, 'build', 'bin')) +result.append(os.path.join(lldbParentDir, 'build', 'host', 'bin')) return result ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237543 - XFAIL'd some flakey tests on Darwin
Author: vharron Date: Sun May 17 10:32:14 2015 New Revision: 237543 URL: http://llvm.org/viewvc/llvm-project?rev=237543view=rev Log: XFAIL'd some flakey tests on Darwin Modified: lldb/trunk/test/expression_command/timeout/TestCallWithTimeout.py lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py lldb/trunk/test/types/TestFloatTypes.py Modified: lldb/trunk/test/expression_command/timeout/TestCallWithTimeout.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/expression_command/timeout/TestCallWithTimeout.py?rev=237543r1=237542r2=237543view=diff == --- lldb/trunk/test/expression_command/timeout/TestCallWithTimeout.py (original) +++ lldb/trunk/test/expression_command/timeout/TestCallWithTimeout.py Sun May 17 10:32:14 2015 @@ -21,6 +21,7 @@ class ExprCommandWithTimeoutsTestCase(Te @skipUnlessDarwin @dsym_test +@expectedFailureDarwin # failed 1/134 runs, line 83, value.IsValid() def test_with_dsym(self): Test calling std::String member function. self.buildDsym() Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py?rev=237543r1=237542r2=237543view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py Sun May 17 10:32:14 2015 @@ -80,6 +80,7 @@ class TestGdbRemote_qThreadStopInfo(gdbr @debugserver_test @dsym_test +@expectedFailureDarwin # failed 1/134 dosep runs, make MAKE_DSYM=YES ARCH=x86_64 CC=clang failed def test_qThreadStopInfo_works_for_multiple_threads_debugserver_dsym(self): self.init_debugserver_test() self.buildDsym() Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py?rev=237543r1=237542r2=237543view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemote_vCont.py Sun May 17 10:32:14 2015 @@ -106,6 +106,7 @@ class TestGdbRemote_vCont(gdbremote_test @debugserver_test @dsym_test +@expectedFailureDarwin('http://llvm.org/pr23550') # failed 6/134 dosep runs def test_single_step_only_steps_one_instruction_with_vCont_s_thread_debugserver_dsym(self): self.init_debugserver_test() self.buildDsym() Modified: lldb/trunk/test/types/TestFloatTypes.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/types/TestFloatTypes.py?rev=237543r1=237542r2=237543view=diff == --- lldb/trunk/test/types/TestFloatTypes.py (original) +++ lldb/trunk/test/types/TestFloatTypes.py Sun May 17 10:32:14 2015 @@ -38,6 +38,7 @@ class FloatTypesTestCase(AbstractBase.Ge @skipUnlessDarwin @dsym_test +@expectedFailureDarwin # failed 1/140 runs 'frame variable --show-types a_union_nonzero_ref.u.a' matches the output (from compiled code): 11001110 def test_double_type_with_dsym(self): Test that double-type variables are displayed correctly. self.build_and_run('double.cpp', set(['double'])) ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237515 - XFAIL'd some tests that fail very, very rarely
Author: vharron Date: Sat May 16 02:05:15 2015 New Revision: 237515 URL: http://llvm.org/viewvc/llvm-project?rev=237515view=rev Log: XFAIL'd some tests that fail very, very rarely Modified: lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py Modified: lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py?rev=237515r1=237514r2=237515view=diff == --- lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py (original) +++ lldb/trunk/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py Sat May 16 02:05:15 2015 @@ -24,6 +24,7 @@ class ExprDoesntDeadlockTestCase(TestBas @dwarf_test @expectedFailureFreeBSD('llvm.org/pr17946') +@expectedFailureLinux # failed 1/365 test runs, line 61, thread.IsValid() def test_with_dwarf_and_run_command(self): Test that expr will time out and allow other threads to run if it blocks. self.buildDwarf() Modified: lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py?rev=237515r1=237514r2=237515view=diff == --- lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py (original) +++ lldb/trunk/test/functionalities/inline-stepping/TestInlineStepping.py Sat May 16 02:05:15 2015 @@ -23,6 +23,7 @@ class TestInlineStepping(TestBase): @expectedFailureFreeBSD('llvm.org/pr17214') @expectedFailureIcc # Not really a bug. ICC combines two inlined functions. @expectedFailureAll(llvm.org/pr23139, oslist=[linux], compiler=gcc, compiler_version=[=,4.9], archs=[i386]) +@expectedFailureLinux # failed 1/365 dosep runs, (i386-clang), TestInlineStepping.py:237 failed to stop at first breakpoint in main def test_with_dwarf_and_python_api(self): Test stepping over and into inlined functions. self.buildDwarf() Modified: lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py?rev=237515r1=237514r2=237515view=diff == --- lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py (original) +++ lldb/trunk/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py Sat May 16 02:05:15 2015 @@ -151,6 +151,7 @@ class TestGdbRemoteAuxvSupport(gdbremote @llgs_test @dwarf_test +@expectedFailureLinux('http://llvm.org/pr23545') # build failure 1/365 dosep builds def test_auxv_keys_look_valid_llgs_dwarf(self): self.init_llgs_test() self.buildDwarf() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [lldb] r237454 - Improve the MiVarTestCase.test_lldbmi_var_list_children test (MI)
XFAIL'd MiVarTestCase.test_lldbmi_eval on gcc-4.9/i386 It times out on TestMyVar:113 self.expect(\^done,value=\0x[0-9a-f]+\) On Fri, May 15, 2015 at 2:07 PM, Vince Harron vi...@nethacker.com wrote: Please let us know if you need help. On Fri, May 15, 2015 at 2:02 PM, Vince Harron vi...@nethacker.com wrote: Hi Illia, This appears to have broken Linux i386 gcc 4.9.2 http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/2419 Is it a quick fix? If not, can you roll back? Thanks, Vince On Fri, May 15, 2015 at 9:13 AM, Ilia K ki.s...@gmail.com wrote: Author: ki.stfu Date: Fri May 15 11:13:51 2015 New Revision: 237454 URL: http://llvm.org/viewvc/llvm-project?rev=237454view=rev Log: Improve the MiVarTestCase.test_lldbmi_var_list_children test (MI) Modified: lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py lldb/trunk/test/tools/lldb-mi/variable/main.cpp Modified: lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py?rev=237454r1=237453r2=237454view=diff == --- lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py (original) +++ lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py Fri May 15 11:13:51 2015 @@ -239,8 +239,8 @@ class MiVarTestCase(lldbmi_testcase.MiTe self.runCmd(-file-exec-and-symbols %s % self.myexe) self.expect(\^done) -# Run to BP_var_list_children -line = line_number('main.cpp', '// BP_var_list_children') +# Run to BP_var_list_children_test +line = line_number('main.cpp', '// BP_var_list_children_test') self.runCmd(-break-insert main.cpp:%d % line) self.expect(\^done,bkpt={number=\1\) self.runCmd(-exec-run) @@ -252,6 +252,8 @@ class MiVarTestCase(lldbmi_testcase.MiTe self.expect(\^done,name=\var_complx\,numchild=\3\,value=\\{\.\.\.\}\,type=\complex_type\,thread-id=\1\,has_more=\0\) self.runCmd(-var-create var_complx_array * complx_array) self.expect(\^done,name=\var_complx_array\,numchild=\2\,value=\\[2\]\,type=\complex_type \[2\]\,thread-id=\1\,has_more=\0\) +self.runCmd(-var-create var_pcomplx * pcomplx) + self.expect(\^done,name=\var_pcomplx\,numchild=\2\,value=\\{\.\.\.\}\,type=\pcomplex_type\,thread-id=\1\,has_more=\0\) # Test that -var-list-children lists empty children if range is empty # (and that print-values is optional) @@ -268,24 +270,38 @@ class MiVarTestCase(lldbmi_testcase.MiTe self.expect(\^done,numchild=\3\,children=\[child=\{name=\var_complx\.i\,exp=\i\,numchild=\0\,type=\int\,thread-id=\1\,value=\3\,has_more=\0\\},child=\{name=\var_complx\.inner\,exp=\inner\,numchild=\1\,type=\complex_type::\(anonymous struct\)\,thread-id=\1\,value=\\{\.\.\.\}\,has_more=\0\\},child=\{name=\var_complx\.complex_ptr\,exp=\complex_ptr\,numchild=\3\,type=\complex_type \*\,thread-id=\1\,value=\0x[0-9a-f]+\,has_more=\0\\}\],has_more=\0\) self.runCmd(-var-list-children --simple-values var_complx_array) self.expect(\^done,numchild=\2\,children=\[child=\{name=\var_complx_array\.\[0\]\,exp=\\[0\]\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\},child=\{name=\var_complx_array\.\[1\]\,exp=\\[1\]\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\0\) +self.runCmd(-var-list-children 0 var_pcomplx) + self.expect(\^done,numchild=\2\,children=\[child=\{name=\var_pcomplx\.complex_type\,exp=\complex_type\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\},child={name=\var_pcomplx\.complx\,exp=\complx\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\0\) # Test that -var-list-children lists children without values self.runCmd(-var-list-children 0 var_complx 0 1) self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_complx\.i\,exp=\i\,numchild=\0\,type=\int\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) self.runCmd(-var-list-children --no-values var_complx 0 1) self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_complx\.i\,exp=\i\,numchild=\0\,type=\int\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) +self.runCmd(-var-list-children --no-values var_complx_array 0 1) + self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_complx_array\.\[0\]\,exp=\\[0\]\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) +self.runCmd(-var-list-children --no-values var_pcomplx 0 1) + self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_pcomplx\.complex_type\,exp=\complex_type\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) # Test that -var-list-children lists children with all values self.runCmd(-var-list-children 1 var_complx 1 2) self.expect(\^done,numchild=\1\,children=\[child
[Lldb-commits] [lldb] r237479 - Reverting r237460 to fix test failures introduced on OSX Linux
Author: vharron Date: Fri May 15 16:43:26 2015 New Revision: 237479 URL: http://llvm.org/viewvc/llvm-project?rev=237479view=rev Log: Reverting r237460 to fix test failures introduced on OSX Linux TestExitDuringStep.py TestNumThreads.py TestThreadExit.py TestThreadStates.py Modified: lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileRegex.h lldb/trunk/include/lldb/Target/Target.h lldb/trunk/source/API/SBTarget.cpp lldb/trunk/source/Breakpoint/BreakpointResolverFileLine.cpp lldb/trunk/source/Breakpoint/BreakpointResolverFileRegex.cpp lldb/trunk/source/Commands/CommandObjectBreakpoint.cpp lldb/trunk/source/Core/IOHandler.cpp lldb/trunk/source/Target/Target.cpp lldb/trunk/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py lldb/trunk/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py lldb/trunk/test/functionalities/breakpoint/breakpoint_options/Makefile lldb/trunk/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py lldb/trunk/test/functionalities/breakpoint/breakpoint_options/main.c lldb/trunk/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py lldb/trunk/test/lldbutil.py lldb/trunk/test/settings/TestSettings.py lldb/trunk/test/tools/lldb-mi/breakpoint/TestMiBreak.py lldb/trunk/test/tools/lldb-mi/breakpoint/main.cpp Modified: lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h?rev=237479r1=237478r2=237479view=diff == --- lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h (original) +++ lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h Fri May 15 16:43:26 2015 @@ -32,8 +32,7 @@ public: const FileSpec resolver, uint32_t line_no, bool check_inlines, -bool skip_prologue, -bool exact_match); +bool skip_prologue); virtual ~BreakpointResolverFileLine (); @@ -68,7 +67,6 @@ protected: uint32_t m_line_number; // This is the line number that we are looking for. bool m_inlines; // This determines whether the resolver looks for inlined functions or not. bool m_skip_prologue; -bool m_exact_match; private: DISALLOW_COPY_AND_ASSIGN(BreakpointResolverFileLine); Modified: lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileRegex.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileRegex.h?rev=237479r1=237478r2=237479view=diff == --- lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileRegex.h (original) +++ lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileRegex.h Fri May 15 16:43:26 2015 @@ -29,8 +29,7 @@ class BreakpointResolverFileRegex : { public: BreakpointResolverFileRegex (Breakpoint *bkpt, - RegularExpression regex, - bool exact_match); +RegularExpression regex); virtual ~BreakpointResolverFileRegex (); @@ -62,7 +61,6 @@ public: protected: friend class Breakpoint; RegularExpression m_regex; // This is the line expression that we are looking for. -bool m_exact_match; private: DISALLOW_COPY_AND_ASSIGN(BreakpointResolverFileRegex); Modified: lldb/trunk/include/lldb/Target/Target.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Target.h?rev=237479r1=237478r2=237479view=diff == --- lldb/trunk/include/lldb/Target/Target.h (original) +++ lldb/trunk/include/lldb/Target/Target.h Fri May 15 16:43:26 2015 @@ -64,9 +64,6 @@ public: void SetDefaultArchitecture (const ArchSpec arch); -bool -GetMoveToNearestCode () const; - lldb::DynamicValueType GetPreferDynamicValue() const; @@ -704,8 +701,7 @@ public: LazyBool check_inlines, LazyBool skip_prologue, bool internal, - bool request_hardware, - LazyBool move_to_nearest_code); + bool request_hardware); // Use this to create breakpoint that matches regex against the source lines in files given in source_file_list: lldb::BreakpointSP @@ -713,8 +709,7 @@ public: const FileSpecList *source_file_list, RegularExpression source_regex,
Re: [Lldb-commits] [lldb] r237454 - Improve the MiVarTestCase.test_lldbmi_var_list_children test (MI)
Please let us know if you need help. On Fri, May 15, 2015 at 2:02 PM, Vince Harron vi...@nethacker.com wrote: Hi Illia, This appears to have broken Linux i386 gcc 4.9.2 http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/2419 Is it a quick fix? If not, can you roll back? Thanks, Vince On Fri, May 15, 2015 at 9:13 AM, Ilia K ki.s...@gmail.com wrote: Author: ki.stfu Date: Fri May 15 11:13:51 2015 New Revision: 237454 URL: http://llvm.org/viewvc/llvm-project?rev=237454view=rev Log: Improve the MiVarTestCase.test_lldbmi_var_list_children test (MI) Modified: lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py lldb/trunk/test/tools/lldb-mi/variable/main.cpp Modified: lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py?rev=237454r1=237453r2=237454view=diff == --- lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py (original) +++ lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py Fri May 15 11:13:51 2015 @@ -239,8 +239,8 @@ class MiVarTestCase(lldbmi_testcase.MiTe self.runCmd(-file-exec-and-symbols %s % self.myexe) self.expect(\^done) -# Run to BP_var_list_children -line = line_number('main.cpp', '// BP_var_list_children') +# Run to BP_var_list_children_test +line = line_number('main.cpp', '// BP_var_list_children_test') self.runCmd(-break-insert main.cpp:%d % line) self.expect(\^done,bkpt={number=\1\) self.runCmd(-exec-run) @@ -252,6 +252,8 @@ class MiVarTestCase(lldbmi_testcase.MiTe self.expect(\^done,name=\var_complx\,numchild=\3\,value=\\{\.\.\.\}\,type=\complex_type\,thread-id=\1\,has_more=\0\) self.runCmd(-var-create var_complx_array * complx_array) self.expect(\^done,name=\var_complx_array\,numchild=\2\,value=\\[2\]\,type=\complex_type \[2\]\,thread-id=\1\,has_more=\0\) +self.runCmd(-var-create var_pcomplx * pcomplx) + self.expect(\^done,name=\var_pcomplx\,numchild=\2\,value=\\{\.\.\.\}\,type=\pcomplex_type\,thread-id=\1\,has_more=\0\) # Test that -var-list-children lists empty children if range is empty # (and that print-values is optional) @@ -268,24 +270,38 @@ class MiVarTestCase(lldbmi_testcase.MiTe self.expect(\^done,numchild=\3\,children=\[child=\{name=\var_complx\.i\,exp=\i\,numchild=\0\,type=\int\,thread-id=\1\,value=\3\,has_more=\0\\},child=\{name=\var_complx\.inner\,exp=\inner\,numchild=\1\,type=\complex_type::\(anonymous struct\)\,thread-id=\1\,value=\\{\.\.\.\}\,has_more=\0\\},child=\{name=\var_complx\.complex_ptr\,exp=\complex_ptr\,numchild=\3\,type=\complex_type \*\,thread-id=\1\,value=\0x[0-9a-f]+\,has_more=\0\\}\],has_more=\0\) self.runCmd(-var-list-children --simple-values var_complx_array) self.expect(\^done,numchild=\2\,children=\[child=\{name=\var_complx_array\.\[0\]\,exp=\\[0\]\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\},child=\{name=\var_complx_array\.\[1\]\,exp=\\[1\]\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\0\) +self.runCmd(-var-list-children 0 var_pcomplx) + self.expect(\^done,numchild=\2\,children=\[child=\{name=\var_pcomplx\.complex_type\,exp=\complex_type\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\},child={name=\var_pcomplx\.complx\,exp=\complx\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\0\) # Test that -var-list-children lists children without values self.runCmd(-var-list-children 0 var_complx 0 1) self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_complx\.i\,exp=\i\,numchild=\0\,type=\int\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) self.runCmd(-var-list-children --no-values var_complx 0 1) self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_complx\.i\,exp=\i\,numchild=\0\,type=\int\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) +self.runCmd(-var-list-children --no-values var_complx_array 0 1) + self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_complx_array\.\[0\]\,exp=\\[0\]\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) +self.runCmd(-var-list-children --no-values var_pcomplx 0 1) + self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_pcomplx\.complex_type\,exp=\complex_type\,numchild=\3\,type=\complex_type\,thread-id=\1\,has_more=\0\\}\],has_more=\1\) # Test that -var-list-children lists children with all values self.runCmd(-var-list-children 1 var_complx 1 2) self.expect(\^done,numchild=\1\,children=\[child=\{name=\var_complx\.inner\,exp=\inner\,numchild=\1\,type=\complex_type::\(anonymous struct\)\,thread-id=\1\,value=\\{\.\.\.\}\,has_more=\0\\}\],has_more=\1\) self.runCmd(-var-list-children --all
Re: [Lldb-commits] [lldb] r237460 - Add --move-to-nearest-code / target.move-to-nearest-code options
Hi Illia, This appears to have broken both OSX and Linux builders. http://lab.llvm.org:8011/builders/lldb-x86_64-darwin-13.4/builds/2941 http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/2421 Is it a quick fix? If not, can you roll back? Thanks, Vince On Fri, May 15, 2015 at 11:16 AM, Ilia K ki.s...@gmail.com wrote: Author: ki.stfu Date: Fri May 15 13:16:15 2015 New Revision: 237460 URL: http://llvm.org/viewvc/llvm-project?rev=237460view=rev Log: Add --move-to-nearest-code / target.move-to-nearest-code options Summary: This option forces to only set a source line breakpoint when there is an exact-match This patch includes the following commits: # Add the -m/--exact-match option in breakpoint set command ## Add exact_match arg in BreakpointResolverFileLine ctor ## Add m_exact_match field in BreakpointResolverFileLine ## Add exact_match arg in BreakpointResolverFileRegex ctor ## Add m_exact_match field in BreakpointResolverFileRegex ## Add exact_match arg in Target::CreateSourceRegexBreakpoint ## Add exact_match arg in Target::CreateBreakpoint ## Add -m/--exact-match option in breakpoint set command # Add target.exact-match option to skip BP if source line doesn't match ## Add target.exact-match global option ## Add Target::GetExactMatch ## Refactor Target::CreateSourceRegexBreakpoint to accept LazyBool exact_match (was bool) ## Refactor Target::CreateBreakpoint to accept LazyBool exact_match (was bool) # Add target.exact-match test in SettingsCommandTestCase # Add BreakpointOptionsTestCase tests to test --skip-prologue/--exact-match options # Fix a few typos in lldbutil.check_breakpoint_result func # Rename --exact-match/m_exact_match/exact_match/GetExactMatch to --move-to-nearest-code/m_move_to_nearest_code/move_to_nearest_code/GetMoveToNearestCode # Add exact_match field in BreakpointResolverFileLine::GetDescription and BreakpointResolverFileRegex::GetDescription, for example: was: ``` 1: file = '/Users/IliaK/p/llvm/tools/lldb/test/functionalities/breakpoint/breakpoint_command/main.c', line = 12, locations = 1, resolved = 1, hit count = 2 1.1: where = a.out`main + 20 at main.c:12, address = 0x00010eb4, resolved, hit count = 2 ``` now: ``` 1: file = '/Users/IliaK/p/llvm/tools/lldb/test/functionalities/breakpoint/breakpoint_command/main.c', line = 12, exact_match = 0, locations = 1, resolved = 1, hit count = 2 1.1: where = a.out`main + 20 at main.c:12, address = 0x00010eb4, resolved, hit count = 2 ``` Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb functionalities/breakpoint/ ./dotest.py -v --executable $BUILDDIR/bin/lldb settings/ ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/breakpoint/ Reviewers: jingham, clayborg Reviewed By: clayborg Subscribers: lldb-commits, clayborg, jingham Differential Revision: http://reviews.llvm.org/D9273 Added: lldb/trunk/test/functionalities/breakpoint/breakpoint_options/ lldb/trunk/test/functionalities/breakpoint/breakpoint_options/Makefile lldb/trunk/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py lldb/trunk/test/functionalities/breakpoint/breakpoint_options/main.c Modified: lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileRegex.h lldb/trunk/include/lldb/Target/Target.h lldb/trunk/source/API/SBTarget.cpp lldb/trunk/source/Breakpoint/BreakpointResolverFileLine.cpp lldb/trunk/source/Breakpoint/BreakpointResolverFileRegex.cpp lldb/trunk/source/Commands/CommandObjectBreakpoint.cpp lldb/trunk/source/Core/IOHandler.cpp lldb/trunk/source/Target/Target.cpp lldb/trunk/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py lldb/trunk/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py lldb/trunk/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py lldb/trunk/test/lldbutil.py lldb/trunk/test/settings/TestSettings.py lldb/trunk/test/tools/lldb-mi/breakpoint/TestMiBreak.py lldb/trunk/test/tools/lldb-mi/breakpoint/main.cpp Modified: lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h?rev=237460r1=237459r2=237460view=diff == --- lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h (original) +++ lldb/trunk/include/lldb/Breakpoint/BreakpointResolverFileLine.h Fri May 15 13:16:15 2015 @@ -32,7 +32,8 @@ public: const FileSpec resolver, uint32_t line_no, bool check_inlines, -bool skip_prologue); +bool
Re: [Lldb-commits] [lldb] r237392 - Enable multithreaded debugging on Windows.
There is a new test failure in Linux after this change. Can we revert to green and help you figure it out? == FAIL: test_with_dwarf (TestNumThreads.NumberOfThreadsTestCase) Test number of threads. -- Traceback (most recent call last): File /usr/local/google/home/vharron/bisect/tmp/llvm/tools/lldb/test/lldbtest.py, line 499, in wrapper return func(self, *args, **kwargs) File /usr/local/google/home/vharron/bisect/tmp/llvm/tools/lldb/test/functionalities/thread/TestNumThreads.py, line 26, in test_with_dwarf self.number_of_threads_test() File /usr/local/google/home/vharron/bisect/tmp/llvm/tools/lldb/test/functionalities/thread/TestNumThreads.py, line 51, in number_of_threads_test substrs = [stop reason = breakpoint 1.]) File /usr/local/google/home/vharron/bisect/tmp/llvm/tools/lldb/test/lldbtest.py, line 2344, in expect msg if msg else EXP_MSG(str, exe)) AssertionError: False is not True : Process should be stopped due to breakpoint Config=i386-gcc -- On Thu, May 14, 2015 at 2:07 PM, Adrian McCarthy amcca...@google.com wrote: Author: amccarth Date: Thu May 14 16:07:59 2015 New Revision: 237392 URL: http://llvm.org/viewvc/llvm-project?rev=237392view=rev Log: Enable multithreaded debugging on Windows. Added: lldb/trunk/test/functionalities/thread/main.cpp Removed: lldb/trunk/test/functionalities/thread/main.c Modified: lldb/trunk/source/Plugins/Process/Windows/DebuggerThread.cpp lldb/trunk/source/Plugins/Process/Windows/ExceptionRecord.h lldb/trunk/source/Plugins/Process/Windows/IDebugDelegate.h lldb/trunk/source/Plugins/Process/Windows/LocalDebugDelegate.cpp lldb/trunk/source/Plugins/Process/Windows/LocalDebugDelegate.h lldb/trunk/source/Plugins/Process/Windows/ProcessWindows.cpp lldb/trunk/source/Plugins/Process/Windows/ProcessWindows.h lldb/trunk/source/Target/ThreadList.cpp lldb/trunk/test/functionalities/thread/Makefile lldb/trunk/test/functionalities/thread/TestNumThreads.py Modified: lldb/trunk/source/Plugins/Process/Windows/DebuggerThread.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Windows/DebuggerThread.cpp?rev=237392r1=237391r2=237392view=diff == --- lldb/trunk/source/Plugins/Process/Windows/DebuggerThread.cpp (original) +++ lldb/trunk/source/Plugins/Process/Windows/DebuggerThread.cpp Thu May 14 16:07:59 2015 @@ -283,9 +283,9 @@ DebuggerThread::HandleExceptionEvent(con { bool first_chance = (info.dwFirstChance != 0); -m_active_exception.reset(new ExceptionRecord(info.ExceptionRecord)); +m_active_exception.reset(new ExceptionRecord(info.ExceptionRecord, thread_id)); WINLOG_IFANY(WINDOWS_LOG_EVENT | WINDOWS_LOG_EXCEPTION, - HandleExceptionEvent encountered %s chance exception 0x%x on thread %u, + HandleExceptionEvent encountered %s chance exception 0x%x on thread 0x%x, first_chance ? first : second, info.ExceptionRecord.ExceptionCode, thread_id); ExceptionResult result = m_debug_delegate-OnDebugException(first_chance, @@ -308,9 +308,11 @@ DWORD DebuggerThread::HandleCreateThreadEvent(const CREATE_THREAD_DEBUG_INFO info, DWORD thread_id) { WINLOG_IFANY(WINDOWS_LOG_EVENT|WINDOWS_LOG_THREAD, -HandleCreateThreadEvent Thread %u spawned in process %I64u, -m_process.GetProcessId(), thread_id); - +HandleCreateThreadEvent Thread 0x%x spawned in process %I64u, +thread_id, m_process.GetProcessId()); +HostThread thread(info.hThread); +thread.GetNativeThread().SetOwnsHandle(false); +m_debug_delegate-OnCreateThread(thread); return DBG_CONTINUE; } @@ -347,7 +349,7 @@ DebuggerThread::HandleExitThreadEvent(co WINLOG_IFANY(WINDOWS_LOG_EVENT|WINDOWS_LOG_THREAD, HandleExitThreadEvent Thread %u exited with code %u in process %I64u, thread_id, info.dwExitCode, m_process.GetProcessId()); - +m_debug_delegate-OnExitThread(thread_id, info.dwExitCode); return DBG_CONTINUE; } @@ -358,9 +360,9 @@ DebuggerThread::HandleExitProcessEvent(c HandleExitProcessEvent process %I64u exited with code %u, m_process.GetProcessId(), info.dwExitCode); -FreeProcessHandles(); - m_debug_delegate-OnExitProcess(info.dwExitCode); + +FreeProcessHandles(); return DBG_CONTINUE; } Modified: lldb/trunk/source/Plugins/Process/Windows/ExceptionRecord.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Windows/ExceptionRecord.h?rev=237392r1=237391r2=237392view=diff == ---
Re: [Lldb-commits] [lldb] r237411 - The StopInfo base class has an m_description std::string.
Hi Jason, Unfortunately, this broke watchpoints on Linux. (I just confirmed by building testing both this revision and the previous.) Do you have any guesses? Would you like one of us to take a look? How do you feel about reverting it to get the build green while it's being investigated? http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/2406 Vince On Thu, May 14, 2015 at 5:19 PM, Jason Molenda jmole...@apple.com wrote: Author: jmolenda Date: Thu May 14 19:19:28 2015 New Revision: 237411 URL: http://llvm.org/viewvc/llvm-project?rev=237411view=rev Log: The StopInfo base class has an m_description std::string. Remove the m_description ivar from the StopInfoBreakpoint and StopInfoWatchpoint subclasses of StopInfo. Also, initialize the m_description ivar in the StopInfo ctor. rdar://problem/20902950 Modified: lldb/trunk/source/Target/StopInfo.cpp Modified: lldb/trunk/source/Target/StopInfo.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/StopInfo.cpp?rev=237411r1=237410r2=237411view=diff == --- lldb/trunk/source/Target/StopInfo.cpp (original) +++ lldb/trunk/source/Target/StopInfo.cpp Thu May 14 19:19:28 2015 @@ -40,6 +40,7 @@ StopInfo::StopInfo (Thread thread, uint m_stop_id (thread.GetProcess()-GetStopID()), m_resume_id (thread.GetProcess()-GetResumeID()), m_value (value), +m_description (), m_override_should_notify (eLazyBoolCalculate), m_override_should_stop (eLazyBoolCalculate), m_extended_info() @@ -112,7 +113,6 @@ class StopInfoBreakpoint : public StopIn public: StopInfoBreakpoint (Thread thread, break_id_t break_id) : StopInfo (thread, break_id), -m_description(), m_should_stop (false), m_should_stop_is_valid (false), m_should_perform_action (true), @@ -125,7 +125,6 @@ public: StopInfoBreakpoint (Thread thread, break_id_t break_id, bool should_stop) : StopInfo (thread, break_id), -m_description(), m_should_stop (should_stop), m_should_stop_is_valid (true), m_should_perform_action (true), @@ -568,7 +567,6 @@ protected: } private: -std::string m_description; bool m_should_stop; bool m_should_stop_is_valid; bool m_should_perform_action; // Since we are trying to preserve the state of the system even if we run functions @@ -621,7 +619,6 @@ public: StopInfoWatchpoint (Thread thread, break_id_t watch_id) : StopInfo(thread, watch_id), -m_description(), m_should_stop(false), m_should_stop_is_valid(false) { @@ -860,7 +857,6 @@ protected: } private: -std::string m_description; bool m_should_stop; bool m_should_stop_is_valid; }; ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237319 - Added XTIMEOUT for TestAttachDenied.py
Author: vharron Date: Wed May 13 18:59:03 2015 New Revision: 237319 URL: http://llvm.org/viewvc/llvm-project?rev=237319view=rev Log: Added XTIMEOUT for TestAttachDenied.py Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237319r1=237318r2=237319view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Wed May 13 18:59:03 2015 @@ -167,6 +167,7 @@ def getExpectedTimeouts(dotest_options): if target.startswith(linux): expected_timeout |= { +TestAttachDenied.py, TestAttachResume.py, TestConnectRemote.py, TestCreateAfterAttach.py, ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237174 - Added minor comment
Author: vharron Date: Tue May 12 15:55:43 2015 New Revision: 237174 URL: http://llvm.org/viewvc/llvm-project?rev=237174view=rev Log: Added minor comment Modified: lldb/trunk/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py Modified: lldb/trunk/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py?rev=237174r1=237173r2=237174view=diff == --- lldb/trunk/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py (original) +++ lldb/trunk/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py Tue May 12 15:55:43 2015 @@ -110,6 +110,7 @@ class APIDefaultConstructorTestCase(Test sb_debugger.fuzz_obj(obj) @python_api_test +# darwin: This test passes with swig 3.0.2, fails w/3.0.5 other tests fail with 2.0.12 http://llvm.org/pr23488 def test_SBError(self): obj = lldb.SBError() if self.TraceOn(): ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237182 - XFAIL'd TestPersistObjCPointeeType.py
Author: vharron Date: Tue May 12 16:16:51 2015 New Revision: 237182 URL: http://llvm.org/viewvc/llvm-project?rev=237182view=rev Log: XFAIL'd TestPersistObjCPointeeType.py Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj lldb/trunk/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py lldb/trunk/test/expression_command/persist_objc_pointeetype/main.m Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=237182r1=237181r2=237182view=diff == --- lldb/trunk/lldb.xcodeproj/project.pbxproj (original) +++ lldb/trunk/lldb.xcodeproj/project.pbxproj Tue May 12 16:16:51 2015 @@ -7622,7 +7622,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INSTALL_PATH = $(LLDB_TOOLS_INSTALL_DIR); - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = 10.8; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ( $(inherited), @@ -7658,7 +7658,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INSTALL_PATH = $(LLDB_TOOLS_INSTALL_DIR); - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = 10.8; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ( $(inherited), @@ -7690,7 +7690,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INSTALL_PATH = $(LLDB_TOOLS_INSTALL_DIR); - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = 10.8; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ( $(inherited), @@ -7723,7 +7723,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INSTALL_PATH = $(LLDB_TOOLS_INSTALL_DIR); - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = ; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS[sdk=iphoneos*] = ( $(inherited), Modified: lldb/trunk/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py?rev=237182r1=237181r2=237182view=diff == --- lldb/trunk/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py (original) +++ lldb/trunk/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py Tue May 12 16:16:51 2015 @@ -19,6 +19,7 @@ class PersistObjCPointeeType(TestBase): @skipUnlessDarwin @dsym_test +@expectedFailureDarwin('http://llvm.org/pr23504') # can't compile inferior with Xcode 6.1.1 or 6.2 def test_with_dsym(self): Test that we can p *objcObject self.buildDsym() @@ -26,6 +27,7 @@ class PersistObjCPointeeType(TestBase): @skipUnlessDarwin @dwarf_test +@expectedFailureDarwin('http://llvm.org/pr23504') # can't compile inferior with Xcode 6.1.1 or 6.2 def test_with_dwarf(self): Test that we can p *objcObject self.buildDwarf() Modified: lldb/trunk/test/expression_command/persist_objc_pointeetype/main.m URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/expression_command/persist_objc_pointeetype/main.m?rev=237182r1=237181r2=237182view=diff == --- lldb/trunk/test/expression_command/persist_objc_pointeetype/main.m (original) +++ lldb/trunk/test/expression_command/persist_objc_pointeetype/main.m Tue May 12 16:16:51 2015 @@ -3,7 +3,7 @@ clang -g ExtendSuperclass.m -o ExtendSup */ #include assert.h #import Foundation/Foundation.h -#import CloudKit/CloudKit.h +@class CKDatabase; #define SuperClass CKDatabase ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237218 - Fixed a ton of gcc compile warnings
Author: vharron Date: Tue May 12 19:25:54 2015 New Revision: 237218 URL: http://llvm.org/viewvc/llvm-project?rev=237218view=rev Log: Fixed a ton of gcc compile warnings Removed some unused variables, added some consts, changed some casts to const_cast. I don't think any of these changes are very controversial. Differential Revision: http://reviews.llvm.org/D9674 Modified: lldb/trunk/include/lldb/Core/DataEncoder.h lldb/trunk/include/lldb/Interpreter/CommandObject.h lldb/trunk/source/Commands/CommandObjectMemory.cpp lldb/trunk/source/Core/DataBufferHeap.cpp lldb/trunk/source/Core/DataEncoder.cpp lldb/trunk/source/Core/FormatEntity.cpp lldb/trunk/source/DataFormatters/StringPrinter.cpp lldb/trunk/source/Expression/IRExecutionUnit.cpp lldb/trunk/source/Host/common/Editline.cpp lldb/trunk/source/Host/common/Symbols.cpp lldb/trunk/source/Interpreter/Args.cpp lldb/trunk/source/Interpreter/CommandInterpreter.cpp lldb/trunk/source/Interpreter/CommandObject.cpp lldb/trunk/source/Interpreter/Options.cpp lldb/trunk/source/Interpreter/ScriptInterpreterPython.cpp lldb/trunk/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp lldb/trunk/source/Plugins/Instruction/ARM/EmulationStateARM.cpp lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp lldb/trunk/source/Plugins/Process/Linux/ProcessLinux.cpp lldb/trunk/source/Plugins/Process/Linux/ProcessLinux.h lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp lldb/trunk/source/Symbol/CompactUnwindInfo.cpp lldb/trunk/source/Symbol/DWARFCallFrameInfo.cpp lldb/trunk/source/Symbol/Symtab.cpp lldb/trunk/tools/driver/Driver.cpp Modified: lldb/trunk/include/lldb/Core/DataEncoder.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/DataEncoder.h?rev=237218r1=237217r2=237218view=diff == --- lldb/trunk/include/lldb/Core/DataEncoder.h (original) +++ lldb/trunk/include/lldb/Core/DataEncoder.h Tue May 12 19:25:54 2015 @@ -357,7 +357,7 @@ public: /// The number of bytes that this object now contains. //-- uint32_t -SetData (const void *bytes, uint32_t length, lldb::ByteOrder byte_order); +SetData (void *bytes, uint32_t length, lldb::ByteOrder byte_order); //-- /// Adopt a subset of shared data in \a data_sp. Modified: lldb/trunk/include/lldb/Interpreter/CommandObject.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/CommandObject.h?rev=237218r1=237217r2=237218view=diff == --- lldb/trunk/include/lldb/Interpreter/CommandObject.h (original) +++ lldb/trunk/include/lldb/Interpreter/CommandObject.h Tue May 12 19:25:54 2015 @@ -195,7 +195,7 @@ public: static lldb::CommandArgumentType LookupArgumentName (const char *arg_name); -static ArgumentTableEntry * +static const ArgumentTableEntry * FindArgumentDataByType (lldb::CommandArgumentType arg_type); int Modified: lldb/trunk/source/Commands/CommandObjectMemory.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectMemory.cpp?rev=237218r1=237217r2=237218view=diff == --- lldb/trunk/source/Commands/CommandObjectMemory.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectMemory.cpp Tue May 12 19:25:54 2015 @@ -534,7 +534,7 @@ protected: clang::TypeDecl *tdecl = target-GetPersistentVariables().GetPersistentType(ConstString(lookup_type_name)); if (tdecl) { - clang_ast_type.SetClangType(tdecl-getASTContext(),(lldb::clang_type_t)tdecl-getTypeForDecl()); +clang_ast_type.SetClangType(tdecl-getASTContext(),(const lldb::clang_type_t)tdecl-getTypeForDecl()); } } Modified: lldb/trunk/source/Core/DataBufferHeap.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/DataBufferHeap.cpp?rev=237218r1=237217r2=237218view=diff == ---
[Lldb-commits] [lldb] r237206 - Added support for XTIMEOUT to dosep
Author: vharron Date: Tue May 12 18:10:36 2015 New Revision: 237206 URL: http://llvm.org/viewvc/llvm-project?rev=237206view=rev Log: Added support for XTIMEOUT to dosep Ideally, this would be put in the individual test files. Unfortunately, I'm not sure how to do that quickly/easily. I'm open to suggestions. In the meantime, I'll submit this to stabilze the build server. Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237206r1=237205r2=237206view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Tue May 12 18:10:36 2015 @@ -24,6 +24,7 @@ orexport LLDB_TESTCONCURRENTEVENTS_T import multiprocessing import os import platform +import re import shlex import subprocess import sys @@ -147,6 +148,34 @@ def walk_and_invoke(test_root, dotest_op return (timed_out, failed, passed) +def getExpectedTimeouts(dotest_options): +# returns a set of test filenames that might timeout +# are we running against a remote target? +m = re.search('\sremote-(\w+)', dotest_options) +if m: +target = m.group(1) +remote = True +else: +target = sys.platform +remote = False + +expected_timeout = set() + +if target.startswith(linux): +expected_timeout |= { +TestAttachResume.py, +TestConnectRemote.py, +TestCreateAfterAttach.py, +TestExitDuringStep.py, +TestThreadStepOut.py, +} +elif target.startswith(android): +expected_timeout |= { +TestExitDuringStep.py, +TestHelloWorld.py, +} +return expected_timeout + def main(): # We can't use sys.path[0] to determine the script directory # because it doesn't work under a debugger @@ -202,6 +231,13 @@ Run lldb test suite using a separate pro timed_out = set(timed_out) num_tests = len(failed) + len(passed) +# remove expected timeouts from failures +expected_timeout = getExpectedTimeouts(dotest_options) +for xtime in expected_timeout: +if xtime in timed_out: +timed_out.remove(xtime) +failed.remove(xtime) + print Ran %d tests. % num_tests if len(failed) 0: failed.sort() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237207 - dosep can run tests in a specific subfolder
Author: vharron Date: Tue May 12 18:12:19 2015 New Revision: 237207 URL: http://llvm.org/viewvc/llvm-project?rev=237207view=rev Log: dosep can run tests in a specific subfolder For example: ./dosep.py -o $DOTEST_OPTS lang/c/ Differential Revision: http://reviews.llvm.org/D9724 Modified: lldb/trunk/test/dosep.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=237207r1=237206r2=237207view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Tue May 12 18:12:19 2015 @@ -115,16 +115,20 @@ def process_dir_worker(arg_tuple): (root, files, test_root, dotest_options) = arg_tuple return process_dir(root, files, test_root, dotest_options) -def walk_and_invoke(test_root, dotest_options, num_threads): +def walk_and_invoke(test_directory, test_subdir, dotest_options, num_threads): Look for matched files and invoke test driver on each one. In single-threaded mode, each test driver is invoked directly. In multi-threaded mode, submit each test driver to a worker -queue, and then wait for all to complete. +queue, and then wait for all to complete. + +test_directory - lldb/test/ directory +test_subdir - lldb/test/ or a subfolder with the tests we're interested in running + # Collect the test files that we'll run. test_work_items = [] -for root, dirs, files in os.walk(test_root, topdown=False): -test_work_items.append((root, files, test_root, dotest_options)) +for root, dirs, files in os.walk(test_subdir, topdown=False): +test_work_items.append((root, files, test_directory, dotest_options)) # Run the items, either in a pool (for multicore speedup) or # calling each individually. @@ -179,8 +183,7 @@ def getExpectedTimeouts(dotest_options): def main(): # We can't use sys.path[0] to determine the script directory # because it doesn't work under a debugger -test_root = os.path.dirname(os.path.realpath(__file__)) - +test_directory = os.path.dirname(os.path.realpath(__file__)) parser = OptionParser(usage=\ Run lldb test suite using a separate process for each test file. @@ -214,6 +217,12 @@ Run lldb test suite using a separate pro opts, args = parser.parse_args() dotest_options = opts.dotest_options +# The root directory was specified on the command line +if len(args) == 0: +test_subdir = test_directory +else: +test_subdir = os.path.join(test_directory, args[0]) + if opts.num_threads: num_threads = opts.num_threads else: @@ -226,7 +235,7 @@ Run lldb test suite using a separate pro num_threads = 1 system_info = .join(platform.uname()) -(timed_out, failed, passed) = walk_and_invoke(test_root, dotest_options, +(timed_out, failed, passed) = walk_and_invoke(test_directory, test_subdir, dotest_options, num_threads) timed_out = set(timed_out) num_tests = len(failed) + len(passed) ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237230 - Darwin - fix intermitent crashes in import crashinfo
Author: vharron Date: Wed May 13 00:00:23 2015 New Revision: 237230 URL: http://llvm.org/viewvc/llvm-project?rev=237230view=rev Log: Darwin - fix intermitent crashes in import crashinfo Summary: import crashinfo was probably failing because multiple dotest invocations are all trying to compile crashinfo.so at the same time. I've put a mutex around the compile step to prevent this. Reviewers: clayborg, chying Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D9732 Added: lldb/trunk/test/lock.py Modified: lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=237230r1=237229r2=237230view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Wed May 13 00:00:23 2015 @@ -23,6 +23,7 @@ for available options. import commands import os import errno +import lock import platform import progress import signal @@ -441,11 +442,23 @@ def setupCrashInfoHook(): test_dir = os.environ['LLDB_TEST'] if not test_dir or not os.path.exists(test_dir): return +dylib_lock = os.path.join(test_dir,crashinfo.lock) dylib_src = os.path.join(test_dir,crashinfo.c) dylib_dst = os.path.join(test_dir,crashinfo.so) -cmd = SDKROOT= xcrun clang %s -o %s -framework Python -Xlinker -dylib -iframework /System/Library/Frameworks/ -Xlinker -F /System/Library/Frameworks/ % (dylib_src,dylib_dst) -if subprocess.call(cmd,shell=True) == 0 and os.path.exists(dylib_dst): -setCrashInfoHook = setCrashInfoHook_Mac +try: +compile_lock = lock.Lock(dylib_lock) +compile_lock.acquire() +if not os.path.isfile(dylib_dst) or os.path.getmtime(dylib_dst) os.path.getmtime(dylib_src): +# we need to compile +cmd = SDKROOT= xcrun clang %s -o %s -framework Python -Xlinker -dylib -iframework /System/Library/Frameworks/ -Xlinker -F /System/Library/Frameworks/ % (dylib_src,dylib_dst) +if subprocess.call(cmd,shell=True) != 0 or not os.path.isfile(dylib_dst): +raise Exception('command failed: {}'.format(cmd)) +finally: +compile_lock.release() +del compile_lock + +setCrashInfoHook = setCrashInfoHook_Mac + else: pass Added: lldb/trunk/test/lock.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lock.py?rev=237230view=auto == --- lldb/trunk/test/lock.py (added) +++ lldb/trunk/test/lock.py Wed May 13 00:00:23 2015 @@ -0,0 +1,23 @@ + +Interprocess mutex based on file locks + + +import fcntl +import os + +class Lock: + +def __init__(self, filename): +self.filename = filename +# This will create it if it does not exist already +self.handle = open(filename, 'w') + +# Bitwise OR fcntl.LOCK_NB if you need a non-blocking lock +def acquire(self): +fcntl.flock(self.handle, fcntl.LOCK_EX) + +def release(self): +fcntl.flock(self.handle, fcntl.LOCK_UN) + +def __del__(self): +self.handle.close() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237076 - Change session log filename pattern: test before arch
Author: vharron Date: Mon May 11 19:50:54 2015 New Revision: 237076 URL: http://llvm.org/viewvc/llvm-project?rev=237076view=rev Log: Change session log filename pattern: test before arch This is a very minor change. Just reshuffle the elements of the log filename so that the test name comes before the arch/compiler Before: Failure-x86_64-clang-TestCModules.CModulesTestCase.test_expr_with_dwarf.log After: Failure-TestCModules.CModulesTestCase.test_expr_with_dwarf-x86_64-clang.log This way, results are grouped by test name, not by arch. I think this is much more useful. Differential Revision: http://reviews.llvm.org/D9648 Modified: lldb/trunk/test/lldbtest.py Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=237076r1=237075r2=237076view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Mon May 11 19:50:54 2015 @@ -1431,9 +1431,9 @@ class Base(unittest2.TestCase): if compiler[1] == ':': compiler = compiler[2:] -fname = {}-{}-{}.format(self.getArchitecture(), _.join(compiler.split(os.path.sep)), self.id()) +fname = {}-{}-{}.format(self.id(), self.getArchitecture(), _.join(compiler.split(os.path.sep))) if len(fname) 200: -fname = {}-{}-{}.format(self.getArchitecture(), compiler.split(os.path.sep)[-1], self.id()) +fname = {}-{}-{}.format(self.id(), self.getArchitecture(), compiler.split(os.path.sep)[-1]) if prefix is not None: fname = {}-{}.format(prefix, fname) ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237078 - Get lldb-server building on android-9
Author: vharron Date: Mon May 11 20:10:56 2015 New Revision: 237078 URL: http://llvm.org/viewvc/llvm-project?rev=237078view=rev Log: Get lldb-server building on android-9 Build lldb-server with an android-9 sysroot. Added: lldb/trunk/include/lldb/Host/Time.h lldb/trunk/include/lldb/Host/linux/Personality.h lldb/trunk/include/lldb/Host/linux/Ptrace.h lldb/trunk/include/lldb/Host/linux/Signalfd.h lldb/trunk/include/lldb/Host/posix/Fcntl.h lldb/trunk/source/Host/android/LibcGlue.cpp Modified: lldb/trunk/cmake/platforms/Android.cmake lldb/trunk/include/lldb/Host/android/Android.h lldb/trunk/source/DataFormatters/CXXFormatterFunctions.cpp lldb/trunk/source/Host/CMakeLists.txt lldb/trunk/source/Host/posix/HostInfoPosix.cpp lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp lldb/trunk/source/Plugins/Process/POSIX/ProcessPOSIX.cpp lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp lldb/trunk/source/Utility/PseudoTerminal.cpp Modified: lldb/trunk/cmake/platforms/Android.cmake URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/platforms/Android.cmake?rev=237078r1=237077r2=237078view=diff == --- lldb/trunk/cmake/platforms/Android.cmake (original) +++ lldb/trunk/cmake/platforms/Android.cmake Mon May 11 20:10:56 2015 @@ -85,12 +85,21 @@ if( NOT CMAKE_C_COMPILER ) set( CMAKE_RANLIB ${ANDROID_TOOLCHAIN_DIR}/bin/${ANDROID_TOOLCHAIN_NAME}-ranlib${EXECUTABLE_SUFFIX} CACHE PATH ranlib ) endif() -set( ANDROID_CXX_FLAGS --sysroot=${ANDROID_SYSROOT} -pie -fPIE -funwind-tables -fsigned-char -no-canonical-prefixes ) +set( ANDROID_CXX_FLAGS --sysroot=${ANDROID_SYSROOT} -funwind-tables -fsigned-char -no-canonical-prefixes ) # TODO: different ARM abi have different flags such as neon, vfpv etc if( X86 ) set( ANDROID_CXX_FLAGS ${ANDROID_CXX_FLAGS} -funswitch-loops -finline-limit=300 ) +elseif( ANDROID_ABI STREQUAL armeabi ) + # 64 bit atomic operations used in c++ libraries require armv7-a instructions + # armv5te and armv6 were tried but do not work. + set( ANDROID_CXX_FLAGS ${ANDROID_CXX_FLAGS} -march=armv7-a ) endif() +# PIE is required for API 21+ so we enable it +# unfortunately, it is not supported before API 14 so we need to do something else there +# see http://llvm.org/pr23457 +set( ANDROID_CXX_FLAGS ${ANDROID_CXX_FLAGS} -pie -fPIE ) + # linker flags set( ANDROID_CXX_FLAGS${ANDROID_CXX_FLAGS} -fdata-sections -ffunction-sections ) set( ANDROID_LINKER_FLAGS ${ANDROID_LINKER_FLAGS} -Wl,--gc-sections ) Added: lldb/trunk/include/lldb/Host/Time.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/Time.h?rev=237078view=auto == --- lldb/trunk/include/lldb/Host/Time.h (added) +++ lldb/trunk/include/lldb/Host/Time.h Mon May 11 20:10:56 2015 @@ -0,0 +1,26 @@ +//===-- Time.h --*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===--===// + +// Include system time headers, adding missing functions as necessary + +#ifndef liblldb_Host_Time_h_ +#define liblldb_Host_Time_h_ + +#ifdef __ANDROID_NDK__ +#include android/api-level.h +#endif + +#if defined(__ANDROID_API__) __ANDROID_API__ 21 +#include time64.h +static time_t timegm(struct tm* t); +#else +#include time.h +#endif + +#endif // liblldb_Host_Time_h_ Modified: lldb/trunk/include/lldb/Host/android/Android.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/android/Android.h?rev=237078r1=237077r2=237078view=diff == --- lldb/trunk/include/lldb/Host/android/Android.h (original) +++ lldb/trunk/include/lldb/Host/android/Android.h Mon May 11 20:10:56 2015 @@ -16,9 +16,6 @@ #define _isattyisatty #define SYS_tgkill __NR_tgkill -#define PT_DETACH PTRACE_DETACH - -typedef int__ptrace_request; namespace std { Added: lldb/trunk/include/lldb/Host/linux/Personality.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/linux/Personality.h?rev=237078view=auto == --- lldb/trunk/include/lldb/Host/linux/Personality.h (added) +++ lldb/trunk/include/lldb/Host/linux/Personality.h Mon May 11 20:10:56 2015 @@ -0,0 +1,25 @@
[Lldb-commits] [lldb] r237089 - TestPublicAPIHeaders.py - Changed expectedFailureDarwin to skipIfDarwin
Author: vharron Date: Tue May 12 00:18:06 2015 New Revision: 237089 URL: http://llvm.org/viewvc/llvm-project?rev=237089view=rev Log: TestPublicAPIHeaders.py - Changed expectedFailureDarwin to skipIfDarwin expectedFailure doesn't work if the failure is in a teardown step. Modified: lldb/trunk/test/api/check_public_api_headers/TestPublicAPIHeaders.py Modified: lldb/trunk/test/api/check_public_api_headers/TestPublicAPIHeaders.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/api/check_public_api_headers/TestPublicAPIHeaders.py?rev=237089r1=237088r2=237089view=diff == --- lldb/trunk/test/api/check_public_api_headers/TestPublicAPIHeaders.py (original) +++ lldb/trunk/test/api/check_public_api_headers/TestPublicAPIHeaders.py Tue May 12 00:18:06 2015 @@ -21,7 +21,8 @@ class SBDirCheckerCase(TestBase): self.exe_name = 'a.out' @skipIfNoSBHeaders -@expectedFailureDarwin # test passes but teardown command 'settings remove target.env-vars DYLD_LIBRARY_PATH' fails +@skipIfDarwin # test passes but teardown command 'settings remove target.env-vars DYLD_LIBRARY_PATH' fails +# (expectedFailureDarwin doesn't work for teardown failures) def test_sb_api_directory(self): Test the SB API directory and make sure there's no unwanted stuff. ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r237085 - Working on getting the OSX build green
Author: vharron Date: Mon May 11 21:20:27 2015 New Revision: 237085 URL: http://llvm.org/viewvc/llvm-project?rev=237085view=rev Log: Working on getting the OSX build green Added missing SBLanguageRuntime.h to lldb.xcodeproj, set to Public (fixed compile error in TestPublicAPIHeaders) Removed reference to (temporarily) missing gtest.xcodeproj Fixed TestDeadStrip compile error XFAIL TestPublicAPIHeaders - test passes but teardown command 'settings remove target.env-vars DYLD_LIBRARY_PATH' fails XFAIL TestCModules - use of undeclared identifier 'MIN' XFAIL TestModulesAutoImport - clang: error: unknown argument: '-gmodules' XFAIL TestObjCNewSyntax - expr -- @((char*)Hello world + 6) cannot box a string value because NSString has not been declared http://reviews.llvm.org/D9643 Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj lldb/trunk/lldb.xcworkspace/contents.xcworkspacedata lldb/trunk/test/api/check_public_api_headers/TestPublicAPIHeaders.py lldb/trunk/test/functionalities/dead-strip/Makefile lldb/trunk/test/lang/c/modules/TestCModules.py lldb/trunk/test/lang/objc/modules-auto-import/TestModulesAutoImport.py lldb/trunk/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py Modified: lldb/trunk/lldb.xcodeproj/project.pbxproj URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lldb.xcodeproj/project.pbxproj?rev=237085r1=237084r2=237085view=diff == --- lldb/trunk/lldb.xcodeproj/project.pbxproj (original) +++ lldb/trunk/lldb.xcodeproj/project.pbxproj Mon May 11 21:20:27 2015 @@ -696,6 +696,7 @@ 26FFC19D14FC072100087D58 /* DynamicLoaderPOSIXDYLD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26FFC19714FC072100087D58 /* DynamicLoaderPOSIXDYLD.cpp */; }; 26FFC19E14FC072100087D58 /* DynamicLoaderPOSIXDYLD.h in Headers */ = {isa = PBXBuildFile; fileRef = 26FFC19814FC072100087D58 /* DynamicLoaderPOSIXDYLD.h */; }; 33064C9C1A5C7A490033D415 /* UriParser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 33064C9B1A5C7A490033D415 /* UriParser.h */; }; + 332CCB181AFF41620034D4C4 /* SBLanguageRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 3392EBB71AFF402200858B9F /* SBLanguageRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; 33E5E8421A672A240024ED68 /* StringConvert.cpp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 33E5E8411A672A240024ED68 /* StringConvert.cpp */; }; 33E5E8461A6736D30024ED68 /* StringConvert.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 33E5E8451A6736D30024ED68 /* StringConvert.h */; }; 33E5E8471A674FB60024ED68 /* StringConvert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 33E5E8411A672A240024ED68 /* StringConvert.cpp */; }; @@ -2209,6 +2210,7 @@ 26FFC19814FC072100087D58 /* DynamicLoaderPOSIXDYLD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicLoaderPOSIXDYLD.h; sourceTree = group; }; 33064C991A5C7A330033D415 /* UriParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UriParser.cpp; path = source/Utility/UriParser.cpp; sourceTree = group; }; 33064C9B1A5C7A490033D415 /* UriParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UriParser.h; path = source/Utility/UriParser.h; sourceTree = group; }; + 3392EBB71AFF402200858B9F /* SBLanguageRuntime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBLanguageRuntime.h; path = include/lldb/API/SBLanguageRuntime.h; sourceTree = group; }; 33E5E8411A672A240024ED68 /* StringConvert.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringConvert.cpp; sourceTree = group; }; 33E5E8451A6736D30024ED68 /* StringConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StringConvert.h; path = include/lldb/Host/StringConvert.h; sourceTree = SOURCE_ROOT; }; 3F5E8AF31A40D4A500A73232 /* PipeBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PipeBase.h; path = include/lldb/Host/PipeBase.h; sourceTree = group; }; @@ -3326,6 +3328,7 @@ 9AC703AE117675410086C050 /* SBInstruction.cpp */, 9AC7038F117675270086C050 /* SBInstructionList.h */, 9AC703B0117675490086C050 /* SBInstructionList.cpp */, + 3392EBB71AFF402200858B9F /* SBLanguageRuntime.h */, AF20F76C1AF18FC700751A6E /* SBLanguageRuntime.cpp */, 254FBB961A81B03100BD6378 /* SBLaunchInfo.h */,
[Lldb-commits] [lldb] r236963 - Fixed lldb-mi test failures introduced by r236956
Author: vharron Date: Sun May 10 17:01:59 2015 New Revision: 236963 URL: http://llvm.org/viewvc/llvm-project?rev=236963view=rev Log: Fixed lldb-mi test failures introduced by r236956 Move enable/disableLogForCurrentTest from lldbtest.TestBase to lldbtest.Base so they're accessible to Mi tests Modified: lldb/trunk/test/lldbtest.py Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=236963r1=236962r2=236963view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Sun May 10 17:01:59 2015 @@ -965,6 +965,55 @@ class Base(unittest2.TestCase): else: return True +def enableLogChannelsForCurrentTest(self): +if len(lldbtest_config.channels) == 0: +return + +# if debug channels are specified in lldbtest_config.channels, +# create a new set of log files for every test +log_basename = self.getLogBasenameForCurrentTest() + +# confirm that the file is writeable +host_log_path = {}-host.log.format(log_basename) +open(host_log_path, 'w').close() + +log_enable = log enable -Tpn -f {} .format(host_log_path) +for channel_with_categories in lldbtest_config.channels: +channel_then_categories = channel_with_categories.split(' ', 1) +channel = channel_then_categories[0] +if len(channel_then_categories) 1: +categories = channel_then_categories[1] +else: +categories = default + +if channel == gdb-remote: +# communicate gdb-remote categories to debugserver +os.environ[LLDB_DEBUGSERVER_LOG_FLAGS] = categories + +self.ci.HandleCommand(log_enable + channel_with_categories, self.res) +if not self.res.Succeeded(): +raise Exception('log enable failed (check LLDB_LOG_OPTION env variable)') + +# Communicate log path name to debugserver lldb-server +server_log_path = {}-server.log.format(log_basename) +open(server_log_path, 'w').close() +os.environ[LLDB_DEBUGSERVER_LOG_FILE] = server_log_path + +# Communicate channels to lldb-server +os.environ[LLDB_SERVER_LOG_CHANNELS] = :.join(lldbtest_config.channels) + +if len(lldbtest_config.channels) == 0: +return + +def disableLogChannelsForCurrentTest(self): +# close all log files that we opened +for channel_and_categories in lldbtest_config.channels: +# channel format - channel-name [category0 [category1 ...]] +channel = channel_and_categories.split(' ', 1)[0] +self.ci.HandleCommand(log disable + channel, self.res) +if not self.res.Succeeded(): +raise Exception('log disable failed (check LLDB_LOG_OPTION env variable)') + def setUp(self): Fixture for unittest test case setup. @@ -1095,6 +1144,25 @@ class Base(unittest2.TestCase): # set environment variable names for finding shared libraries self.dylibPath = self.platformContext.shlib_environment_var +# Create the debugger instance if necessary. +try: +self.dbg = lldb.DBG +except AttributeError: +self.dbg = lldb.SBDebugger.Create() + +if not self.dbg: +raise Exception('Invalid debugger instance') + +# Retrieve the associated command interpreter instance. +self.ci = self.dbg.GetCommandInterpreter() +if not self.ci: +raise Exception('Could not get the command interpreter') + +# And the result object. +self.res = lldb.SBCommandReturnObject() + +self.enableLogChannelsForCurrentTest() + def runHooks(self, child=None, child_prompt=None, use_cmd_api=False): Perform the run hooks to bring lldb debugger to the desired state. @@ -1867,55 +1935,6 @@ class TestBase(Base): folder = os.path.dirname(folder) continue -def enableLogChannelsForCurrentTest(self): -if len(lldbtest_config.channels) == 0: -return - -# if debug channels are specified in lldbtest_config.channels, -# create a new set of log files for every test -log_basename = self.getLogBasenameForCurrentTest() - -# confirm that the file is writeable -host_log_path = {}-host.log.format(log_basename) -open(host_log_path, 'w').close() - -log_enable = log enable -Tpn -f {} .format(host_log_path) -for channel_with_categories in lldbtest_config.channels: -channel_then_categories = channel_with_categories.split(' ', 1) -channel = channel_then_categories[0] -if len(channel_then_categories) 1: -categories = channel_then_categories[1] -
[Lldb-commits] [lldb] r236945 - Fixed minor compile warnings
Author: vharron Date: Sun May 10 03:33:58 2015 New Revision: 236945 URL: http://llvm.org/viewvc/llvm-project?rev=236945view=rev Log: Fixed minor compile warnings Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=236945r1=236944r2=236945view=diff == --- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Sun May 10 03:33:58 2015 @@ -4052,7 +4052,6 @@ ProcessGDBRemote::GetLoadedModuleList (G initGenericErrorDefaultFunc (func); GDBRemoteCommunicationClient comm = m_gdb_comm; -GDBRemoteDynamicRegisterInfo regInfo = m_register_info; // check that we have extended feature read support if (!comm.GetQXferLibrariesSVR4ReadSupported ()) @@ -4228,7 +4227,7 @@ ProcessGDBRemote::LoadModules () continue; // hack (cleaner way to get file name only?) (win/unix compat?) -int marker = mod_name.rfind ('/'); +size_t marker = mod_name.rfind ('/'); if (marker == std::string::npos) marker = 0; else ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r236958 - Remove unsupported lldb-server parameters from test
Author: vharron Date: Sun May 10 13:02:53 2015 New Revision: 236958 URL: http://llvm.org/viewvc/llvm-project?rev=236958view=rev Log: Remove unsupported lldb-server parameters from test Modified: lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py Modified: lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py?rev=236958r1=236957r2=236958view=diff == --- lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py (original) +++ lldb/trunk/test/tools/lldb-server/gdbremote_testcase.py Sun May 10 13:02:53 2015 @@ -162,14 +162,12 @@ class GdbRemoteTestCaseBase(TestBase): # If the binary has been deleted, the link name has (deleted) appended. # Remove if it's there. self.debug_monitor_exe = re.sub(r' \(deleted\)$', '', shell_command.GetOutput().strip()) -dname = self.dbg.GetSelectedPlatform().GetWorkingDirectory() else: self.debug_monitor_exe = get_lldb_server_exe() if not self.debug_monitor_exe: self.skipTest(lldb-server exe not found) -dname = os.path.join(os.environ[LLDB_TEST], os.environ[LLDB_SESSION_DIRNAME]) -self.debug_monitor_extra_args = [gdbserver, -c, log enable -T -f {}/process-{}.log lldb break process thread.format(dname, self.id()), -c, log enable -T -f {}/packets-{}.log gdb-remote packets.format(dname, self.id())] +self.debug_monitor_extra_args = [gdbserver] if use_named_pipe: (self.named_pipe_path, self.named_pipe, self.named_pipe_fd) = self.create_named_pipe() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r236957 - We can't use sys.path[0] to determine the script directory because it doesn't work under a debugger
Author: vharron Date: Sun May 10 10:24:12 2015 New Revision: 236957 URL: http://llvm.org/viewvc/llvm-project?rev=236957view=rev Log: We can't use sys.path[0] to determine the script directory because it doesn't work under a debugger Test Plan: run tests with/without python debugger Tested on OSX Linux with PyCharm Reviewers: chying, clayborg Differential Revision: http://reviews.llvm.org/D9593 Modified: lldb/trunk/test/dosep.py lldb/trunk/test/dotest.py Modified: lldb/trunk/test/dosep.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dosep.py?rev=236957r1=236956r2=236957view=diff == --- lldb/trunk/test/dosep.py (original) +++ lldb/trunk/test/dosep.py Sun May 10 10:24:12 2015 @@ -148,7 +148,9 @@ def walk_and_invoke(test_root, dotest_op return (timed_out, failed, passed) def main(): -test_root = sys.path[0] +# We can't use sys.path[0] to determine the script directory +# because it doesn't work under a debugger +test_root = os.path.dirname(os.path.realpath(__file__)) parser = OptionParser(usage=\ Run lldb test suite using a separate process for each test file. Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=236957r1=236956r2=236957view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Sun May 10 10:24:12 2015 @@ -253,7 +253,9 @@ verbose = 1 progress_bar = False # By default, search from the script directory. -testdirs = [ sys.path[0] ] +# We can't use sys.path[0] to determine the script directory +# because it doesn't work under a debugger +testdirs = [ os.path.dirname(os.path.realpath(__file__)) ] # Separator string. separator = '-' * 70 @@ -375,6 +377,7 @@ o LLDB_LOG: if defined, specifies the lo o GDB_REMOTE_LOG: if defined, specifies the log file pathname for the 'process.gdb-remote' subsystem with a default option of 'packets' if GDB_REMOTE_LOG_OPTION is not defined. + sys.exit(0) @@ -933,10 +936,10 @@ def setupSysPath(): global lldbExecutablePath # Get the directory containing the current script. -if (DOTEST_PROFILE in os.environ or DOTEST_PDB in os.environ) and DOTEST_SCRIPT_DIR in os.environ: +if DOTEST_PROFILE in os.environ and DOTEST_SCRIPT_DIR in os.environ: scriptPath = os.environ[DOTEST_SCRIPT_DIR] else: -scriptPath = sys.path[0] +scriptPath = os.path.dirname(os.path.realpath(__file__)) if not scriptPath.endswith('test'): print This script expects to reside in lldb's test directory. sys.exit(-1) @@ -955,7 +958,7 @@ def setupSysPath(): # Set up the LLDB_SRC environment variable, so that the tests can locate # the LLDB source code. -os.environ[LLDB_SRC] = os.path.join(sys.path[0], os.pardir) +os.environ[LLDB_SRC] = os.path.join(scriptPath, os.pardir) pluginPath = os.path.join(scriptPath, 'plugins') pexpectPath = os.path.join(scriptPath, 'pexpect-2.4') ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r236956 - Add support for ./dotest.py --channel and --log-success
Author: vharron Date: Sun May 10 10:22:09 2015 New Revision: 236956 URL: http://llvm.org/viewvc/llvm-project?rev=236956view=rev Log: Add support for ./dotest.py --channel and --log-success Summary: New dotest options that allow arbitrary log channels and categories to be enabled. Also enables logging for locally run debug servers. Log messages are separated into separate files per test case. (this makes it possible to log in dosep runs) These new log files are stored side-by-side with trace files in the session directory. These files are deleted by default if the test run is successful. If --log-success is specified, even successful logs are retained. --log-success is useful for creating reference log files. Test Plan: add '--channel lldb all --channel gdb-remote packets --log-success' to your dotest options Tested on OSX and Linux Differential Revision: http://reviews.llvm.org/D9594 Added: lldb/trunk/test/lldbtest_config.py Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp lldb/trunk/test/dotest.py lldb/trunk/test/lldbtest.py lldb/trunk/tools/lldb-server/CMakeLists.txt lldb/trunk/tools/lldb-server/lldb-gdbserver.cpp Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp?rev=236956r1=236955r2=236956view=diff == --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp Sun May 10 10:22:09 2015 @@ -850,12 +850,21 @@ GDBRemoteCommunication::StartDebugserver debugserver_args.AppendArgument(arg_cstr); } +#if defined(__APPLE__) const char *env_debugserver_log_flags = getenv(LLDB_DEBUGSERVER_LOG_FLAGS); if (env_debugserver_log_flags) { ::snprintf (arg_cstr, sizeof(arg_cstr), --log-flags=%s, env_debugserver_log_flags); debugserver_args.AppendArgument(arg_cstr); } +#else +const char *env_debugserver_log_channels = getenv(LLDB_SERVER_LOG_CHANNELS); +if (env_debugserver_log_channels) +{ +::snprintf (arg_cstr, sizeof(arg_cstr), --log-channels=%s, env_debugserver_log_channels); +debugserver_args.AppendArgument(arg_cstr); +} +#endif // Add additional args, starting with LLDB_DEBUGSERVER_EXTRA_ARG_1 until an env var doesn't come back. uint32_t env_var_index = 1; Modified: lldb/trunk/test/dotest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/dotest.py?rev=236956r1=236955r2=236956view=diff == --- lldb/trunk/test/dotest.py (original) +++ lldb/trunk/test/dotest.py Sun May 10 10:22:09 2015 @@ -32,6 +32,7 @@ import textwrap import time import inspect import unittest2 +import lldbtest_config if sys.version_info = (2, 7): argparse = __import__('argparse') @@ -337,7 +338,36 @@ notify the directory containing the sess In case there is any test failure/error, a similar message is appended at the end of the stderr output for your convenience. -Environment variables related to loggings: +ENABLING LOGS FROM TESTS + +Option 1: + +Writing logs into different files per test case:: + +This option is particularly useful when multiple dotest instances are created +by dosep.py + +$ ./dotest.py --channel lldb all + +$ ./dotest.py --channel lldb all --channel gdb-remote packets + +These log files are written to: + +session-dir/test-id.log (logs from lldb host process) +session-dir/test-id-server.log (logs from debugserver/lldb-server) +session-dir/test-id-trace-test-result.log (console logs) + +By default, logs from successful runs are deleted. Use the --log-success flag +to create reference logs for debugging. + +$ ./dotest.py --log-success + +Option 2: (DEPRECATED) + +The following options can only enable logs from the host lldb process. +Only categories from the lldb or gdb-remote channels can be enabled +They also do not automatically enable logs in locally running debug servers. +Also, logs from all test case are written into each log file o LLDB_LOG: if defined, specifies the log file pathname for the 'lldb' subsystem with a default option of 'event process' if LLDB_LOG_OPTION is not defined. @@ -522,6 +552,8 @@ def parseOptionsAndInitTestdirs(): group.add_argument('-x', metavar='breakpoint-spec', help='Specify the breakpoint specification for the benchmark executable') group.add_argument('-y', type=int, metavar='count', help=Specify the iteration count used to collect our benchmarks. An example is the number of times to do 'thread step-over' to measure stepping speed.) group.add_argument('-#', type=int, metavar='sharp',
[Lldb-commits] [lldb] r236914 - TestCModules was effectively skipped on Linux
Author: vharron Date: Fri May 8 18:17:46 2015 New Revision: 236914 URL: http://llvm.org/viewvc/llvm-project?rev=236914view=rev Log: TestCModules was effectively skipped on Linux Summary: I've removed the secret skip and added expectedFailureLinux Test Plan: run tests Reviewers: flackr Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D9615 Modified: lldb/trunk/test/lang/c/modules/TestCModules.py Modified: lldb/trunk/test/lang/c/modules/TestCModules.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lang/c/modules/TestCModules.py?rev=236914r1=236913r2=236914view=diff == --- lldb/trunk/test/lang/c/modules/TestCModules.py (original) +++ lldb/trunk/test/lang/c/modules/TestCModules.py Fri May 8 18:17:46 2015 @@ -22,6 +22,7 @@ class CModulesTestCase(TestBase): @dwarf_test @skipIfFreeBSD +@expectedFailureLinux('http://llvm.org/pr23456') # 'fopen' has unknown return type def test_expr_with_dwarf(self): self.buildDwarf() self.expr() @@ -33,9 +34,7 @@ class CModulesTestCase(TestBase): self.line = line_number('main.c', '// Set breakpoint 0 here.') def applies(self): -if platform.system() != Darwin: -return False -if StrictVersion('12.0.0') platform.release(): +if platform.system() == Darwin and platform.release() StrictVersion('12.0.0'): return False return True ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r236410 - TestCModules - fixed for gcc
Author: vharron Date: Mon May 4 01:26:13 2015 New Revision: 236410 URL: http://llvm.org/viewvc/llvm-project?rev=236410view=rev Log: TestCModules - fixed for gcc Changed restrict keyword to something understood by gcc Modified: lldb/trunk/test/lang/c/modules/main.c lldb/trunk/test/lldbinline.py Modified: lldb/trunk/test/lang/c/modules/main.c URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lang/c/modules/main.c?rev=236410r1=236409r2=236410view=diff == --- lldb/trunk/test/lang/c/modules/main.c (original) +++ lldb/trunk/test/lang/c/modules/main.c Mon May 4 01:26:13 2015 @@ -1,6 +1,6 @@ #include stdlib.h -int printf(const char * restrict format, ...); +int printf(const char * __restrict format, ...); typedef struct { int a; Modified: lldb/trunk/test/lldbinline.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbinline.py?rev=236410r1=236409r2=236410view=diff == --- lldb/trunk/test/lldbinline.py (original) +++ lldb/trunk/test/lldbinline.py Mon May 4 01:26:13 2015 @@ -121,7 +121,6 @@ class InlineTest(TestBase): self.buildDsym() self.do_test() -@expectedFailureGcc #xfail to get buildbot green, test failed with gcc4.8.2 def __test_with_dwarf(self): self.using_dsym = False self.BuildMakefile() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r236396 - TestMultithreaded improvements
Author: vharron Date: Sun May 3 19:17:53 2015 New Revision: 236396 URL: http://llvm.org/viewvc/llvm-project?rev=236396view=rev Log: TestMultithreaded improvements These tests link against host lldb API. Compiler's target triple must match liblldb triple. Instead of naively skipping i386, I added a check of the liblldb arch against the compiler target arch. This is useful for 32 bit API builds (planned for Windows) Since remote is disabled, we can assume the os is the same. Also, removed skipIfLinuxClang because it's passing Modified: lldb/trunk/test/api/multithreaded/TestMultithreaded.py lldb/trunk/test/lldbtest.py Modified: lldb/trunk/test/api/multithreaded/TestMultithreaded.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/api/multithreaded/TestMultithreaded.py?rev=236396r1=236395r2=236396view=diff == --- lldb/trunk/test/api/multithreaded/TestMultithreaded.py (original) +++ lldb/trunk/test/api/multithreaded/TestMultithreaded.py Sun May 3 19:17:53 2015 @@ -15,23 +15,18 @@ class SBBreakpointCallbackCase(TestBase) self.lib_dir = os.environ[LLDB_LIB_DIR] self.implib_dir = os.environ[LLDB_IMPLIB_DIR] self.inferior = 'inferior_program' -if self.getArchitecture() != i386: - self.buildProgram('inferior.cpp', self.inferior) - self.addTearDownHook(lambda: os.remove(self.inferior)) +if self.getLldbArchitecture() == self.getArchitecture(): +self.buildProgram('inferior.cpp', self.inferior) +self.addTearDownHook(lambda: os.remove(self.inferior)) -@unittest2.expectedFailure(llvm.org/pr16000: SBBreakpoint.SetCallback() does nothing) -@skipIfi386 @skipIfRemote -@skipIfLinuxClang # buildbot clang version unable to use libstdc++ with c++11 @skipIfNoSBHeaders def test_breakpoint_callback(self): Test the that SBBreakpoint callback is invoked when a breakpoint is hit. self.build_and_test('driver.cpp test_breakpoint_callback.cpp', 'test_breakpoint_callback') -@skipIfi386 @skipIfRemote -@skipIfLinuxClang # buildbot clang version unable to use libstdc++ with c++11 @skipIfNoSBHeaders @expectedFailureAll(llvm.org/pr23139, oslist=[linux], compiler=gcc, compiler_version=[=,4.9], archs=[x86_64]) def test_sb_api_listener_event_description(self): @@ -40,9 +35,7 @@ class SBBreakpointCallbackCase(TestBase) 'test_listener_event_description') pass -@skipIfi386 @skipIfRemote -@skipIfLinuxClang # buildbot clang version unable to use libstdc++ with c++11 @skipIfNoSBHeaders @expectedFailureAll(llvm.org/pr23139, oslist=[linux], compiler=gcc, compiler_version=[=,4.9], archs=[x86_64]) def test_sb_api_listener_event_process_state(self): @@ -54,9 +47,7 @@ class SBBreakpointCallbackCase(TestBase) pass -@skipIfi386 @skipIfRemote -@skipIfLinuxClang # buildbot clang version unable to use libstdc++ with c++11 @skipIfNoSBHeaders @expectedFailureAll(llvm.org/pr23139, oslist=[linux], compiler=gcc, compiler_version=[=,4.9], archs=[x86_64]) def test_sb_api_listener_resume(self): @@ -67,6 +58,14 @@ class SBBreakpointCallbackCase(TestBase) def build_and_test(self, sources, test_name, args = None): Build LLDB test from sources, and run expecting 0 exit code + +# These tests link against host lldb API. +# Compiler's target triple must match liblldb triple +# because remote is disabled, we can assume that the os is the same +# still need to check architecture +if self.getLldbArchitecture() != self.getArchitecture(): +self.skipTest(This test is only run if the target arch is the same as the lldb binary arch) + self.buildDriver(sources, test_name) self.addTearDownHook(lambda: os.remove(test_name)) Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=236396r1=236395r2=236396view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Sun May 3 19:17:53 2015 @@ -1425,6 +1425,30 @@ class Base(unittest2.TestCase): arch = 'x86_64' return arch +def getLldbArchitecture(self): +Returns the architecture of the lldb binary. +if not hasattr(self, 'lldbArchitecture'): + +# spawn local process +command = [ +self.lldbHere, +-o, +file + self.lldbHere, +-o, +quit +] + +output = check_output(command) +str = output.decode(utf-8); + +for line in str.splitlines(): +m = re.search(Current executable set to '.*'
[Lldb-commits] [lldb] r236407 - XFAILing a test that fails with gcc 4.9 x86_64
Author: vharron Date: Sun May 3 22:53:22 2015 New Revision: 236407 URL: http://llvm.org/viewvc/llvm-project?rev=236407view=rev Log: XFAILing a test that fails with gcc 4.9 x86_64 Modified: lldb/trunk/test/api/multithreaded/TestMultithreaded.py Modified: lldb/trunk/test/api/multithreaded/TestMultithreaded.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/api/multithreaded/TestMultithreaded.py?rev=236407r1=236406r2=236407view=diff == --- lldb/trunk/test/api/multithreaded/TestMultithreaded.py (original) +++ lldb/trunk/test/api/multithreaded/TestMultithreaded.py Sun May 3 22:53:22 2015 @@ -21,6 +21,7 @@ class SBBreakpointCallbackCase(TestBase) @skipIfRemote @skipIfNoSBHeaders +@expectedFailureAll(llvm.org/pr23139, oslist=[linux], compiler=gcc, compiler_version=[=,4.9], archs=[x86_64]) def test_breakpoint_callback(self): Test the that SBBreakpoint callback is invoked when a breakpoint is hit. self.build_and_test('driver.cpp test_breakpoint_callback.cpp', ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r236403 - un-skipped a bunch of tests on Linux
Author: vharron Date: Sun May 3 22:06:04 2015 New Revision: 236403 URL: http://llvm.org/viewvc/llvm-project?rev=236403view=rev Log: un-skipped a bunch of tests on Linux Some have been marked as skipIfLinux for years. The seem to be passing so I've enabled them. Differential Revision: http://reviews.llvm.org/D9428 Modified: lldb/trunk/test/benchmarks/continue/TestBenchmarkContinue.py lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py lldb/trunk/test/functionalities/dead-strip/Makefile lldb/trunk/test/functionalities/dead-strip/TestDeadStrip.py lldb/trunk/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py lldb/trunk/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py lldb/trunk/test/lang/c/modules/TestCModules.py lldb/trunk/test/python_api/event/TestEvents.py Modified: lldb/trunk/test/benchmarks/continue/TestBenchmarkContinue.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/benchmarks/continue/TestBenchmarkContinue.py?rev=236403r1=236402r2=236403view=diff == --- lldb/trunk/test/benchmarks/continue/TestBenchmarkContinue.py (original) +++ lldb/trunk/test/benchmarks/continue/TestBenchmarkContinue.py Sun May 3 22:06:04 2015 @@ -21,7 +21,6 @@ class TestBenchmarkContinue(BenchBase): self.data_formatter_commands() @benchmarks_test -@skipIfLinux # No standard locations for libc++ on Linux, so skip for now @dwarf_test def test_with_dwarf_and_run_command(self): Benchmark different ways to continue a process Modified: lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py?rev=236403r1=236402r2=236403view=diff == --- lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py (original) +++ lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py Sun May 3 22:06:04 2015 @@ -29,7 +29,7 @@ class ExprCommandThatRestartsTestCase(Te @dwarf_test @skipIfFreeBSD # llvm.org/pr19246: intermittent failure -@skipIfLinux # llvm.org/pr19246: intermittent failure +@expectedFailureLinux(llvm.org/pr19246) # intermittent failure @skipIfDarwin # llvm.org/pr19246: intermittent failure @skipIfWindows # Test relies on signals, unsupported on Windows def test_with_dwarf(self): Modified: lldb/trunk/test/functionalities/dead-strip/Makefile URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/dead-strip/Makefile?rev=236403r1=236402r2=236403view=diff == --- lldb/trunk/test/functionalities/dead-strip/Makefile (original) +++ lldb/trunk/test/functionalities/dead-strip/Makefile Sun May 3 22:06:04 2015 @@ -1,7 +1,14 @@ LEVEL = ../../make C_SOURCES := main.c -LDFLAGS = $(CFLAGS) -Xlinker -dead_strip + +ifeq $(OS) Darwin +LDFLAGS = $(CFLAGS) -Xlinker -dead_strip +else +CFLAGS += -fdata-sections -ffunction-sections +LDFLAGS = $(CFLAGS) -Wl,--gc-sections +endif + MAKE_DSYM := NO include $(LEVEL)/Makefile.rules Modified: lldb/trunk/test/functionalities/dead-strip/TestDeadStrip.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/dead-strip/TestDeadStrip.py?rev=236403r1=236402r2=236403view=diff == --- lldb/trunk/test/functionalities/dead-strip/TestDeadStrip.py (original) +++ lldb/trunk/test/functionalities/dead-strip/TestDeadStrip.py Sun May 3 22:06:04 2015 @@ -20,7 +20,6 @@ class DeadStripTestCase(TestBase): self.dead_strip() @skipIfFreeBSD # The -dead_strip linker option isn't supported on FreeBSD versions of ld. -@skipIfLinux # The -dead_strip linker option isn't supported on Linux versions of ld. @dwarf_test def test_with_dwarf(self): Test breakpoint works correctly with dead-code stripping. Modified: lldb/trunk/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py?rev=236403r1=236402r2=236403view=diff == --- lldb/trunk/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py (original) +++ lldb/trunk/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py Sun May 3 22:06:04 2015 @@ -41,7 +41,7 @@ class ReturnValueTestCase(TestBase): @python_api_test @dwarf_test -@skipIfLinux # intermittent failure - llvm.org/pr19247 +@expectedFailureGcc(llvm.org/pr19247) def test_step_over_with_dwarf_python(self): Test stepping over using avoid-no-debug with dwarf.
[Lldb-commits] [lldb] r236401 - Enabled libc++ formatter tests on Linux
Author: vharron Date: Sun May 3 21:56:32 2015 New Revision: 236401 URL: http://llvm.org/viewvc/llvm-project?rev=236401view=rev Log: Enabled libc++ formatter tests on Linux Refactored TestInitializerList to not be an inline test. Refactored Makefiles to use USE_LIBCPP instead of adding FLAGS directly Fixed copy/paste error in TestDataFormatterUnordered class name Differenttial Revision: http://reviews.llvm.org/D9426 Modified: lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/main.cpp lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/Makefile lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py lldb/trunk/test/lldbtest.py lldb/trunk/test/make/Makefile.rules Modified: lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py?rev=236401r1=236400r2=236401view=diff == --- lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py (original) +++ lldb/trunk/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py Sun May 3 21:56:32 2015 @@ -1,6 +1,57 @@ -import lldbinline + +Test lldb data formatter subsystem. + + +import os, time +import unittest2 +import lldb from lldbtest import * +import lldbutil + +class InitializerListTestCase(TestBase): + +mydir = TestBase.compute_mydir(__file__) + +@skipUnlessDarwin +@dsym_test +def test_with_dsym(self): +Test data formatter commands. +self.buildDsym() +self.data_formatter_commands() + +@skipIfWindows # libc++ not ported to Windows yet +@skipIfGcc +@expectedFailureLinux # fails on clang 3.5 and tot +@dwarf_test +def test_with_dwarf(self): +Test data formatter commands. +self.buildDwarf() +self.data_formatter_commands() + +def setUp(self): +# Call super's setUp(). +TestBase.setUp(self) + +def data_formatter_commands(self): +Test that that file and class static variables display correctly. +self.runCmd(file a.out, CURRENT_EXECUTABLE_SET) + +bkpt = self.target().FindBreakpointByID(lldbutil.run_break_set_by_source_regexp (self, Set break point at this line.)) + +self.runCmd(run, RUN_SUCCEEDED) + +# The stop reason of the thread should be breakpoint. +self.expect(thread list, STOPPED_DUE_TO_BREAKPOINT, +substrs = ['stopped', + 'stop reason = breakpoint']) + +self.expect(frame variable ili, substrs = ['[1] = 2','[4] = 5']) +self.expect(frame variable ils,
[Lldb-commits] [lldb] r236402 - Fixed skipIfLinuxClang to check the target architecture
Author: vharron Date: Sun May 3 21:59:19 2015 New Revision: 236402 URL: http://llvm.org/viewvc/llvm-project?rev=236402view=rev Log: Fixed skipIfLinuxClang to check the target architecture Instead of the host architecture This decorator isn't in use anywhere currently. Add it to a test and run Modified: lldb/trunk/test/lldbtest.py Modified: lldb/trunk/test/lldbtest.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbtest.py?rev=236402r1=236401r2=236402view=diff == --- lldb/trunk/test/lldbtest.py (original) +++ lldb/trunk/test/lldbtest.py Sun May 3 21:59:19 2015 @@ -747,8 +747,8 @@ def skipIfLinuxClang(func): from unittest2 import case self = args[0] compiler = self.getCompiler() -platform = sys.platform -if clang in compiler and linux in platform: +platform = self.getPlatform() +if clang in compiler and platform == linux: self.skipTest(skipping because Clang is used on Linux) else: func(*args, **kwargs) ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [Diffusion] rL234993: TestConvenienceVariables - fixed a Linux problem
Thanks for the fix. On Wed, Apr 15, 2015 at 3:15 PM, Ilia K ki.s...@gmail.com wrote: $ svn ci Sending test/functionalities/embedded_interpreter/TestConvenienceVariables.py Transmitting file data . Committed revision 235010. USERS vharron (Author) ki.stfu (Auditor) http://reviews.llvm.org/rL234993 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r234992 - Exception registers aren't supported outside of Darwin
Author: vharron Date: Wed Apr 15 05:31:42 2015 New Revision: 234992 URL: http://llvm.org/viewvc/llvm-project?rev=234992view=rev Log: Exception registers aren't supported outside of Darwin Updated test to match Differential Revision: http://reviews.llvm.org/D8812 Modified: lldb/trunk/test/python_api/lldbutil/iter/TestRegistersIterator.py Modified: lldb/trunk/test/python_api/lldbutil/iter/TestRegistersIterator.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/python_api/lldbutil/iter/TestRegistersIterator.py?rev=234992r1=234991r2=234992view=diff == --- lldb/trunk/test/python_api/lldbutil/iter/TestRegistersIterator.py (original) +++ lldb/trunk/test/python_api/lldbutil/iter/TestRegistersIterator.py Wed Apr 15 05:31:42 2015 @@ -19,7 +19,6 @@ class RegistersIteratorTestCase(TestBase self.line1 = line_number('main.cpp', '// Set break point at this line.') @expectedFailureFreeBSD # llvm.org/pr14600 - Exception state registers not supported on FreeBSD -@expectedFailureLinux # llvm.org/pr14600 - Exception state registers not supported on Linux @python_api_test def test_iter_registers(self): Test iterator works correctly for lldbutil.iter_registers(). @@ -68,21 +67,29 @@ class RegistersIteratorTestCase(TestBase print %s = %s % (reg.GetName(), reg.GetValue()) REGs = lldbutil.get_ESRs(frame) -num = len(REGs) -if self.TraceOn(): -print \nNumber of exception state registers: %d % num -for reg in REGs: -self.assertTrue(reg) +if self.platformIsDarwin(): +num = len(REGs) if self.TraceOn(): -print %s = %s % (reg.GetName(), reg.GetValue()) +print \nNumber of exception state registers: %d % num +for reg in REGs: +self.assertTrue(reg) +if self.TraceOn(): +print %s = %s % (reg.GetName(), reg.GetValue()) +else: +self.assertIsNone(REGs) # And these should also work. for kind in [General Purpose Registers, - Floating Point Registers, - Exception State Registers]: + Floating Point Registers]: REGs = lldbutil.get_registers(frame, kind) self.assertTrue(REGs) +REGs = lldbutil.get_registers(frame, Exception State Registers) +if self.platformIsDarwin(): +self.assertIsNotNone(REGs) +else: +self.assertIsNone(REGs) + # We've finished dumping the registers for frame #0. break ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r234993 - TestConvenienceVariables - fixed a Linux problem
Author: vharron Date: Wed Apr 15 05:36:39 2015 New Revision: 234993 URL: http://llvm.org/viewvc/llvm-project?rev=234993view=rev Log: TestConvenienceVariables - fixed a Linux problem Test was waiting for wrong string on Linux. It is still marked as XFAIL because of an intermittent failure. Differential Revision: http://reviews.llvm.org/D8679 Modified: lldb/trunk/test/functionalities/embedded_interpreter/TestConvenienceVariables.py Modified: lldb/trunk/test/functionalities/embedded_interpreter/TestConvenienceVariables.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/embedded_interpreter/TestConvenienceVariables.py?rev=234993r1=234992r2=234993view=diff == --- lldb/trunk/test/functionalities/embedded_interpreter/TestConvenienceVariables.py (original) +++ lldb/trunk/test/functionalities/embedded_interpreter/TestConvenienceVariables.py Wed Apr 15 05:36:39 2015 @@ -79,8 +79,12 @@ class ConvenienceVariablesCase(TestBase) child.sendline('print lldb.thread') child.expect_exact(python_prompt) +# Linux outputs decimal tid and 'name' instead of 'queue' self.expect(child.before, exe=False, -patterns = ['thread #1: tid = 0x[0-9a-f]+, 0x[0-9a-f]+ a\.out`main\(argc=1, argv=0x[0-9a-f]+\) \+ \d+ at main\.c:%d, queue = \'.+\', stop reason = breakpoint 1\.1' % self.line]) +patterns = ['thread #1: tid = (0x[0-9a-f]+|[0-9]+), 0x[0-9a-f]+ ' + +'a\.out`main\(argc=1, argv=0x[0-9a-f]+\) \+ \d+ ' + +'at main\.c:%d, (name|queue) = \'.+\', stop reason =' + +' breakpoint 1\.1' % self.line]) child.sendline('print lldb.frame') child.expect_exact(python_prompt) ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r234994 - Skip reverse connect test when running remotely
Author: vharron Date: Wed Apr 15 05:39:17 2015 New Revision: 234994 URL: http://llvm.org/viewvc/llvm-project?rev=234994view=rev Log: Skip reverse connect test when running remotely This use case is not supported and may be removed in the future if not needed Modified: lldb/trunk/test/tools/lldb-server/commandline/TestStubReverseConnect.py Modified: lldb/trunk/test/tools/lldb-server/commandline/TestStubReverseConnect.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-server/commandline/TestStubReverseConnect.py?rev=234994r1=234993r2=234994view=diff == --- lldb/trunk/test/tools/lldb-server/commandline/TestStubReverseConnect.py (original) +++ lldb/trunk/test/tools/lldb-server/commandline/TestStubReverseConnect.py Wed Apr 15 05:39:17 2015 @@ -75,6 +75,7 @@ class TestStubReverseConnect(gdbremote_t self.reverse_connect_works() @llgs_test +@skipIfRemote # reverse connect is not a supported use case for now def test_reverse_connect_works_llgs(self): self.init_llgs_test(use_named_pipe=False) self.set_inferior_startup_launch() ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r234995 - Fixed remote failures in TestCPP11EnumTypes, probably others
Author: vharron Date: Wed Apr 15 05:40:51 2015 New Revision: 234995 URL: http://llvm.org/viewvc/llvm-project?rev=234995view=rev Log: Fixed remote failures in TestCPP11EnumTypes, probably others Typically, LLGS only sends stdout/stderr notifications when the inferior process is running. Because LLGS reads stdout from the process in a separate thread, sometimes these stdout notifications can be received after the server has sent a thread stop message. The host isn't expecting stdout to be generated by the target after a stop message and these messages interfere with the host's request/ response paradigm. Differential Revision: http://reviews.llvm.org/D9024 Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp?rev=234995r1=234994r2=234995view=diff == --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp Wed Apr 15 05:40:51 2015 @@ -747,6 +747,11 @@ GDBRemoteCommunicationServerLLGS::Proces StateAsCString (state)); } +// Make sure we get all of the pending stdout/stderr from the inferior +// and send it to the lldb host before we send the state change +// notification +m_stdio_communication.SynchronizeWithReadThread(); + switch (state) { case StateType::eStateExited: ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Change Linux Platform to support non-host Linux architectures
Thanks for adding MIPS! LGTM http://reviews.llvm.org/D8709 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] TestRecursiveInferior fixed on Linux
Hi Greg, Friendly ping http://reviews.llvm.org/D8678 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] Exception registers aren't supported outside of Darwin
Hi clayborg, Updated test for that http://reviews.llvm.org/D8812 Files: test/python_api/lldbutil/iter/TestRegistersIterator.py Index: test/python_api/lldbutil/iter/TestRegistersIterator.py === --- test/python_api/lldbutil/iter/TestRegistersIterator.py +++ test/python_api/lldbutil/iter/TestRegistersIterator.py @@ -19,7 +19,6 @@ self.line1 = line_number('main.cpp', '// Set break point at this line.') @expectedFailureFreeBSD # llvm.org/pr14600 - Exception state registers not supported on FreeBSD -@expectedFailureLinux # llvm.org/pr14600 - Exception state registers not supported on Linux @python_api_test def test_iter_registers(self): Test iterator works correctly for lldbutil.iter_registers(). @@ -68,21 +67,29 @@ print %s = %s % (reg.GetName(), reg.GetValue()) REGs = lldbutil.get_ESRs(frame) -num = len(REGs) -if self.TraceOn(): -print \nNumber of exception state registers: %d % num -for reg in REGs: -self.assertTrue(reg) +if darwin in sys.platform: +num = len(REGs) if self.TraceOn(): -print %s = %s % (reg.GetName(), reg.GetValue()) +print \nNumber of exception state registers: %d % num +for reg in REGs: +self.assertTrue(reg) +if self.TraceOn(): +print %s = %s % (reg.GetName(), reg.GetValue()) +else: +self.assertIsNone(REGs) # And these should also work. for kind in [General Purpose Registers, - Floating Point Registers, - Exception State Registers]: + Floating Point Registers]: REGs = lldbutil.get_registers(frame, kind) self.assertTrue(REGs) +REGs = lldbutil.get_registers(frame, Exception State Registers) +if darwin in sys.platform: +self.assertIsNotNone(REGs) +else: +self.assertIsNone(REGs) + # We've finished dumping the registers for frame #0. break EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ Index: test/python_api/lldbutil/iter/TestRegistersIterator.py === --- test/python_api/lldbutil/iter/TestRegistersIterator.py +++ test/python_api/lldbutil/iter/TestRegistersIterator.py @@ -19,7 +19,6 @@ self.line1 = line_number('main.cpp', '// Set break point at this line.') @expectedFailureFreeBSD # llvm.org/pr14600 - Exception state registers not supported on FreeBSD -@expectedFailureLinux # llvm.org/pr14600 - Exception state registers not supported on Linux @python_api_test def test_iter_registers(self): Test iterator works correctly for lldbutil.iter_registers(). @@ -68,21 +67,29 @@ print %s = %s % (reg.GetName(), reg.GetValue()) REGs = lldbutil.get_ESRs(frame) -num = len(REGs) -if self.TraceOn(): -print \nNumber of exception state registers: %d % num -for reg in REGs: -self.assertTrue(reg) +if darwin in sys.platform: +num = len(REGs) if self.TraceOn(): -print %s = %s % (reg.GetName(), reg.GetValue()) +print \nNumber of exception state registers: %d % num +for reg in REGs: +self.assertTrue(reg) +if self.TraceOn(): +print %s = %s % (reg.GetName(), reg.GetValue()) +else: +self.assertIsNone(REGs) # And these should also work. for kind in [General Purpose Registers, - Floating Point Registers, - Exception State Registers]: + Floating Point Registers]: REGs = lldbutil.get_registers(frame, kind) self.assertTrue(REGs) +REGs = lldbutil.get_registers(frame, Exception State Registers) +if darwin in sys.platform: +self.assertIsNotNone(REGs) +else: +self.assertIsNone(REGs) +
Re: [Lldb-commits] [PATCH] Exception registers aren't supported outside of Darwin
sys.platform in ['darwin'] with self.platformIsDarwin() http://reviews.llvm.org/D8812 Files: test/python_api/lldbutil/iter/TestRegistersIterator.py Index: test/python_api/lldbutil/iter/TestRegistersIterator.py === --- test/python_api/lldbutil/iter/TestRegistersIterator.py +++ test/python_api/lldbutil/iter/TestRegistersIterator.py @@ -19,7 +19,6 @@ self.line1 = line_number('main.cpp', '// Set break point at this line.') @expectedFailureFreeBSD # llvm.org/pr14600 - Exception state registers not supported on FreeBSD -@expectedFailureLinux # llvm.org/pr14600 - Exception state registers not supported on Linux @python_api_test def test_iter_registers(self): Test iterator works correctly for lldbutil.iter_registers(). @@ -68,21 +67,29 @@ print %s = %s % (reg.GetName(), reg.GetValue()) REGs = lldbutil.get_ESRs(frame) -num = len(REGs) -if self.TraceOn(): -print \nNumber of exception state registers: %d % num -for reg in REGs: -self.assertTrue(reg) +if self.platformIsDarwin(): +num = len(REGs) if self.TraceOn(): -print %s = %s % (reg.GetName(), reg.GetValue()) +print \nNumber of exception state registers: %d % num +for reg in REGs: +self.assertTrue(reg) +if self.TraceOn(): +print %s = %s % (reg.GetName(), reg.GetValue()) +else: +self.assertIsNone(REGs) # And these should also work. for kind in [General Purpose Registers, - Floating Point Registers, - Exception State Registers]: + Floating Point Registers]: REGs = lldbutil.get_registers(frame, kind) self.assertTrue(REGs) +REGs = lldbutil.get_registers(frame, Exception State Registers) +if self.platformIsDarwin(): +self.assertIsNotNone(REGs) +else: +self.assertIsNone(REGs) + # We've finished dumping the registers for frame #0. break EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ Index: test/python_api/lldbutil/iter/TestRegistersIterator.py === --- test/python_api/lldbutil/iter/TestRegistersIterator.py +++ test/python_api/lldbutil/iter/TestRegistersIterator.py @@ -19,7 +19,6 @@ self.line1 = line_number('main.cpp', '// Set break point at this line.') @expectedFailureFreeBSD # llvm.org/pr14600 - Exception state registers not supported on FreeBSD -@expectedFailureLinux # llvm.org/pr14600 - Exception state registers not supported on Linux @python_api_test def test_iter_registers(self): Test iterator works correctly for lldbutil.iter_registers(). @@ -68,21 +67,29 @@ print %s = %s % (reg.GetName(), reg.GetValue()) REGs = lldbutil.get_ESRs(frame) -num = len(REGs) -if self.TraceOn(): -print \nNumber of exception state registers: %d % num -for reg in REGs: -self.assertTrue(reg) +if self.platformIsDarwin(): +num = len(REGs) if self.TraceOn(): -print %s = %s % (reg.GetName(), reg.GetValue()) +print \nNumber of exception state registers: %d % num +for reg in REGs: +self.assertTrue(reg) +if self.TraceOn(): +print %s = %s % (reg.GetName(), reg.GetValue()) +else: +self.assertIsNone(REGs) # And these should also work. for kind in [General Purpose Registers, - Floating Point Registers, - Exception State Registers]: + Floating Point Registers]: REGs = lldbutil.get_registers(frame, kind) self.assertTrue(REGs) +REGs = lldbutil.get_registers(frame, Exception State Registers) +if self.platformIsDarwin(): +self.assertIsNotNone(REGs) +else: +
Re: [Lldb-commits] [PATCH] TestPrintStackTraces - made XFAIL more precise
Hi Greg, Do you want us to wait for review from you on changes that are fairly Linux specific? Comment at: test/python_api/lldbutil/process/TestPrintStackTraces.py:34 @@ +33,3 @@ +if self.getArchitecture() in ['i386'] and linux in sys.platform: +self.skipTest(Skipping because this test is known to fail on i386 Linux) + sivachandra wrote: The test is already marked xfail for i386 and linux. Why have this? It was marked as expectedFailureLinux but seems to be passing on x86_64. http://reviews.llvm.org/D8677 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ ___ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits