| # Common tests for the ConditionVariablePrinter and |
| # ConditionVariableAttributesPrinter classes. |
| # |
| # Copyright (C) 2016-2018 Free Software Foundation, Inc. |
| # This file is part of the GNU C Library. |
| # |
| # The GNU C Library is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU Lesser General Public |
| # License as published by the Free Software Foundation; either |
| # version 2.1 of the License, or (at your option) any later version. |
| # |
| # The GNU C Library is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| # Lesser General Public License for more details. |
| # |
| # You should have received a copy of the GNU Lesser General Public |
| # License along with the GNU C Library; if not, see |
| # <http://www.gnu.org/licenses/>. |
| |
| import sys |
| |
| from test_printers_common import * |
| |
| test_source = sys.argv[1] |
| test_bin = sys.argv[2] |
| printer_files = sys.argv[3:] |
| printer_names = ['global glibc-pthread-locks'] |
| |
| try: |
| init_test(test_bin, printer_files, printer_names) |
| go_to_main() |
| |
| check_debug_symbol('struct pthread_condattr') |
| |
| condvar_var = 'condvar' |
| condvar_to_string = 'pthread_cond_t' |
| |
| attr_var = 'attr' |
| attr_to_string = 'pthread_condattr_t' |
| |
| break_at(test_source, 'Set clock') |
| continue_cmd() # Go to test_setclock |
| next_cmd(2) |
| test_printer(condvar_var, condvar_to_string, {'Clock ID': 'CLOCK_REALTIME'}) |
| test_printer(attr_var, attr_to_string, {'Clock ID': 'CLOCK_REALTIME'}) |
| |
| break_at(test_source, 'Set shared') |
| continue_cmd() # Go to test_setpshared |
| next_cmd(2) |
| test_printer(condvar_var, condvar_to_string, {'Shared': 'Yes'}) |
| test_printer(attr_var, attr_to_string, {'Shared': 'Yes'}) |
| next_cmd(2) |
| test_printer(condvar_var, condvar_to_string, {'Shared': 'No'}) |
| test_printer(attr_var, attr_to_string, {'Shared': 'No'}) |
| |
| continue_cmd() # Exit |
| |
| except (NoLineError, pexpect.TIMEOUT) as exception: |
| print('Error: {0}'.format(exception)) |
| result = FAIL |
| |
| except DebugError as exception: |
| print(exception) |
| result = UNSUPPORTED |
| |
| else: |
| print('Test succeeded.') |
| result = PASS |
| |
| exit(result) |