(self)
| 15 | @threading_helper.requires_working_threading() |
| 16 | class TestSyslog(unittest.TestCase): |
| 17 | def test_racing_syslog(self): |
| 18 | def worker(): |
| 19 | """ |
| 20 | The syslog module provides the following functions: |
| 21 | openlog(), syslog(), closelog(), and setlogmask(). |
| 22 | """ |
| 23 | thread_id = threading.get_ident() |
| 24 | syslog.openlog(f"thread-id: {thread_id}") |
| 25 | try: |
| 26 | for _ in range(5): |
| 27 | syslog.syslog("logline") |
| 28 | syslog.setlogmask(syslog.LOG_MASK(syslog.LOG_INFO)) |
| 29 | syslog.syslog(syslog.LOG_INFO, "logline LOG_INFO") |
| 30 | syslog.setlogmask(syslog.LOG_MASK(syslog.LOG_ERR)) |
| 31 | syslog.syslog(syslog.LOG_ERR, "logline LOG_ERR") |
| 32 | syslog.setlogmask(syslog.LOG_UPTO(syslog.LOG_DEBUG)) |
| 33 | finally: |
| 34 | syslog.closelog() |
| 35 | |
| 36 | # Run the worker concurrently to exercise all these syslog functions |
| 37 | run_concurrently( |
| 38 | worker_func=worker, |
| 39 | nthreads=NTHREADS, |
| 40 | ) |
| 41 | |
| 42 | |
| 43 | if __name__ == "__main__": |
nothing calls this directly
no test coverage detected