user: 这段汇编代码用C语言表示是什么样的：

```asm
<main>:
  endbr64
  push   %rbp
  cmp    $0x1,%edi
  jle    L663
  mov    0x8(%rsi),%rbp
  lea    D41(%rip),%rdi
  xor    %eax,%eax
  mov    %rbp,%rsi
  call   <printf@plt>
  lea    D637(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L705
  lea    D517(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L28
  lea    D113(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L202
  lea    D658(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L566
  lea    D442(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L549
  lea    D54(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L407
  lea    D432(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L360
  lea    D617(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L806
  lea    D729(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L2
  lea    D532(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L603
  lea    D815(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L254
  lea    D594(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L297
  lea    D657(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L62
  lea    D387(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L760
  lea    D267(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L169
  lea    D189(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L155
  lea    D33(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L593
  lea    D406(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L244
  lea    D650(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L583
  lea    D495(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L628
  lea    D520(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  lea    D251(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L469
  lea    D583(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L779
  lea    D23(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L565
  lea    D644(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L319
  lea    D468(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L758
  lea    D623(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L727
  lea    D770(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L670
  lea    D493(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L369
  lea    D498(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L292
  lea    D722(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L129
  lea    D641(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L569
  lea    D348(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L330
  lea    D502(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L510
  lea    D776(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L762
  lea    D773(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L417
  lea    D732(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L516
  lea    D237(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L27
  lea    D12(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L186
  lea    D124(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L195
  lea    D694(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L204
  lea    D341(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L430
  lea    D271(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L5
  lea    D397(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L401
  lea    D760(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L337
  lea    D156(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L431
  lea    D465(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L458
  lea    D293(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L313
  lea    D227(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L411
  lea    D742(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L575
  lea    D225(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L95
  lea    D411(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L582
  lea    D684(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L378
  lea    D44(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L114
  lea    D150(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L398
  lea    D587(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L631
  lea    D548(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L607
  lea    D39(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L665
  lea    D756(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L730
  lea    D228(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L285
  lea    D404(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L579
  lea    D441(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L210
  lea    D422(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L125
  lea    D424(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L556
  lea    D488(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L35
  lea    D26(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D328(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L354
  lea    D292(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L436
  lea    D59(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L408
  lea    D302(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L756
  lea    D273(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L88
  lea    D415(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L329
  lea    D75(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L667
  lea    D716(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L609
  lea    D547(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L671
  lea    D789(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L199
  lea    D749(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L564
  lea    D653(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L553
  lea    D135(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L316
  mov    %rbp,%rsi
  lea    D337(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L308
L705:
  pop    %rbp
  jmp    2810 <test_mmap@plt>
L663:
  lea    D129(%rip),%rdi
  call   <puts@plt>
L308:
  mov    $0x1,%eax
  pop    %rbp
  ret
L566:
  pop    %rbp
  jmp    2630 <test_mmap_prot_none@plt>
L28:
  pop    %rbp
  jmp    28b0 <test_munmap@plt>
L202:
  pop    %rbp
  jmp    29e0 <test_munmap_sigsegv@plt>
L360:
  pop    %rbp
  jmp    2740 <test_sbrk_sigsegv@plt>
L549:
  pop    %rbp
  jmp    2590 <test_mmap_prot_read@plt>
L407:
  pop    %rbp
  jmp    25e0 <test_sbrk@plt>
L806:
  pop    %rbp
  jmp    2860 <test_misbehave@plt>
L2:
  pop    %rbp
  jmp    2650 <test_fd_read@plt>
L603:
  pop    %rbp
  jmp    2700 <test_fd_devnull@plt>
L254:
  pop    %rbp
  jmp    29a0 <test_fd_multidesc@plt>
L297:
  pop    %rbp
  jmp    28a0 <test_fd_readwrite@plt>
L62:
  pop    %rbp
  jmp    2670 <test_fd_copy@plt>
L760:
  pop    %rbp
  jmp    29d0 <test_fd_bad_desc@plt>
L169:
  pop    %rbp
  jmp    2a10 <test_fd_open_path@plt>
L155:
  pop    %rbp
  jmp    27c0 <test_fd_dup@plt>
L593:
  pop    %rbp
  jmp    25a0 <test_fd_pipe@plt>
L244:
  pop    %rbp
  jmp    2620 <test_fd_readv@plt>
L583:
  pop    %rbp
  jmp    27a0 <test_fd_writev@plt>
L113:
  pop    %rbp
  jmp    2780 <test_signal_basic@plt>
L628:
  pop    %rbp
  jmp    26a0 <test_fd_all@plt>
L316:
  pop    %rbp
  jmp    2970 <test_pipe_child_signaled@plt>
L553:
  pop    %rbp
  jmp    2800 <test_pipe_parent_signaled@plt>
L564:
  pop    %rbp
  jmp    2960 <test_procstat@plt>
L199:
  pop    %rbp
  jmp    29b0 <test_tty_signals@plt>
L671:
  pop    %rbp
  jmp    2890 <test_tty_echo@plt>
L609:
  pop    %rbp
  jmp    2840 <test_tty_canon@plt>
L667:
  pop    %rbp
  jmp    2830 <test_pty_simple@plt>
L329:
  pop    %rbp
  jmp    2770 <test_sharing_memory_child_and_grandchild@plt>
L88:
  pop    %rbp
  jmp    27f0 <test_sharing_memory_simple@plt>
L756:
  pop    %rbp
  jmp    2760 <test_get_set_groups@plt>
L516:
  pop    %rbp
  jmp    26d0 <test_access_basic@plt>
L417:
  pop    %rbp
  jmp    2980 <test_lseek_errors@plt>
L762:
  pop    %rbp
  jmp    29c0 <test_lseek_basic@plt>
L510:
  pop    %rbp
  jmp    2a40 <test_fork_sigchld_ignored@plt>
L330:
  pop    %rbp
  jmp    2930 <test_fork_signal@plt>
L569:
  pop    %rbp
  jmp    27d0 <test_fork_wait@plt>
L129:
  pop    %rbp
  jmp    25c0 <test_signal_handler_mask@plt>
L292:
  pop    %rbp
  jmp    2580 <test_signal_sigsuspend_stop@plt>
L369:
  pop    %rbp
  jmp    2a70 <test_signal_sigsuspend@plt>
L670:
  pop    %rbp
  jmp    2950 <test_signal_mask_nonmaskable@plt>
L727:
  pop    %rbp
  jmp    25b0 <test_signal_mask@plt>
L758:
  pop    %rbp
  jmp    2940 <test_signal_cont_masked@plt>
L319:
  pop    %rbp
  jmp    2a20 <test_signal_stop@plt>
L565:
  pop    %rbp
  jmp    2a50 <test_signal_segfault@plt>
L779:
  pop    %rbp
  jmp    2990 <test_signal_abort@plt>
L469:
  pop    %rbp
  jmp    2690 <test_signal_send@plt>
L408:
  pop    %rbp
  jmp    2710 <test_get_set_gid@plt>
L436:
  pop    %rbp
  jmp    2750 <test_get_set_uid@plt>
L354:
  pop    %rbp
  jmp    2560 <test_itimer@plt>
L207:
  pop    %rbp
  jmp    2850 <test_nanosleep@plt>
L35:
  pop    %rbp
  jmp    25f0 <test_gettimeofday@plt>
L556:
  pop    %rbp
  jmp    2880 <test_getcwd@plt>
L125:
  pop    %rbp
  jmp    28c0 <test_session_login_name@plt>
L210:
  pop    %rbp
  jmp    28e0 <test_session_basic@plt>
L579:
  pop    %rbp
  jmp    28d0 <test_pgrp_orphan@plt>
L285:
  pop    %rbp
  jmp    2660 <test_killpg_other_group@plt>
L730:
  pop    %rbp
  jmp    2600 <test_killpg_same_group@plt>
L665:
  pop    %rbp
  jmp    27e0 <test_kill@plt>
L607:
  pop    %rbp
  jmp    2a30 <test_setpgid_child@plt>
L631:
  pop    %rbp
  jmp    2a00 <test_setpgid_leader@plt>
L398:
  pop    %rbp
  jmp    2910 <test_setpgid@plt>
L114:
  pop    %rbp
  jmp    2870 <test_wait_nohang@plt>
L378:
  pop    %rbp
  jmp    2610 <test_wait_basic@plt>
L582:
  pop    %rbp
  jmp    2570 <test_vfs_chmod@plt>
L95:
  pop    %rbp
  jmp    2a60 <test_vfs_link@plt>
L575:
  pop    %rbp
  jmp    26c0 <test_vfs_symlink@plt>
L411:
  pop    %rbp
  jmp    2720 <test_vfs_trunc@plt>
L313:
  pop    %rbp
  jmp    26b0 <test_vfs_dot_dot_across_fs@plt>
L458:
  pop    %rbp
  jmp    2920 <test_vfs_dot_dir@plt>
L431:
  pop    %rbp
  jmp    27b0 <test_vfs_dot_dot_dir@plt>
L337:
  pop    %rbp
  jmp    25d0 <test_vfs_relative_dir@plt>
L401:
  pop    %rbp
  jmp    26f0 <test_vfs_rw@plt>
L5:
  pop    %rbp
  jmp    2900 <test_vfs_dir@plt>
L430:
  pop    %rbp
  jmp    2790 <test_sigaction_handler_returns@plt>
L204:
  pop    %rbp
  jmp    28f0 <test_sigaction_with_setjmp@plt>
L195:
  pop    %rbp
  jmp    26e0 <test_setjmp@plt>
L186:
  pop    %rbp
  jmp    2680 <test_fstat@plt>
L27:
  pop    %rbp
  jmp    29f0 <test_stat@plt>
```

tool_calls: name: read_data
arguments: data_label: D41
type_infered: string
name: read_data
arguments: data_label: D637
type_infered: string
name: read_data
arguments: data_label: D517
type_infered: string
name: read_data
arguments: data_label: D113
type_infered: string
name: read_data
arguments: data_label: D658
type_infered: string
name: read_data
arguments: data_label: D442
type_infered: string
name: read_data
arguments: data_label: D54
type_infered: string
name: read_data
arguments: data_label: D432
type_infered: string
name: read_data
arguments: data_label: D617
type_infered: string
name: read_data
arguments: data_label: D729
type_infered: string
name: read_data
arguments: data_label: D532
type_infered: string
name: read_data
arguments: data_label: D815
type_infered: string
name: read_data
arguments: data_label: D594
type_infered: string
name: read_data
arguments: data_label: D657
type_infered: string
name: read_data
arguments: data_label: D387
type_infered: string
name: read_data
arguments: data_label: D267
type_infered: string
name: read_data
arguments: data_label: D189
type_infered: string
name: read_data
arguments: data_label: D33
type_infered: string
name: read_data
arguments: data_label: D406
type_infered: string
name: read_data
arguments: data_label: D650
type_infered: string
name: read_data
arguments: data_label: D495
type_infered: string
name: read_data
arguments: data_label: D520
type_infered: string
name: read_data
arguments: data_label: D251
type_infered: string
name: read_data
arguments: data_label: D583
type_infered: string
name: read_data
arguments: data_label: D23
type_infered: string
name: read_data
arguments: data_label: D644
type_infered: string
name: read_data
arguments: data_label: D468
type_infered: string
name: read_data
arguments: data_label: D623
type_infered: string
name: read_data
arguments: data_label: D770
type_infered: string
name: read_data
arguments: data_label: D493
type_infered: string
name: read_data
arguments: data_label: D498
type_infered: string
name: read_data
arguments: data_label: D722
type_infered: string
name: read_data
arguments: data_label: D641
type_infered: string
name: read_data
arguments: data_label: D348
type_infered: string
name: read_data
arguments: data_label: D502
type_infered: string
name: read_data
arguments: data_label: D776
type_infered: string
name: read_data
arguments: data_label: D773
type_infered: string
name: read_data
arguments: data_label: D732
type_infered: string
name: read_data
arguments: data_label: D237
type_infered: string
name: read_data
arguments: data_label: D12
type_infered: string
name: read_data
arguments: data_label: D124
type_infered: string
name: read_data
arguments: data_label: D694
type_infered: string
name: read_data
arguments: data_label: D341
type_infered: string
name: read_data
arguments: data_label: D271
type_infered: string
name: read_data
arguments: data_label: D397
type_infered: string
name: read_data
arguments: data_label: D760
type_infered: string
name: read_data
arguments: data_label: D156
type_infered: string
name: read_data
arguments: data_label: D465
type_infered: string
name: read_data
arguments: data_label: D293
type_infered: string
name: read_data
arguments: data_label: D227
type_infered: string
name: read_data
arguments: data_label: D742
type_infered: string
name: read_data
arguments: data_label: D225
type_infered: string
name: read_data
arguments: data_label: D411
type_infered: string
name: read_data
arguments: data_label: D684
type_infered: string
name: read_data
arguments: data_label: D44
type_infered: string
name: read_data
arguments: data_label: D150
type_infered: string
name: read_data
arguments: data_label: D587
type_infered: string
name: read_data
arguments: data_label: D548
type_infered: string
name: read_data
arguments: data_label: D39
type_infered: string
name: read_data
arguments: data_label: D756
type_infered: string
name: read_data
arguments: data_label: D228
type_infered: string
name: read_data
arguments: data_label: D404
type_infered: string
name: read_data
arguments: data_label: D441
type_infered: string
name: read_data
arguments: data_label: D422
type_infered: string
name: read_data
arguments: data_label: D424
type_infered: string
name: read_data
arguments: data_label: D488
type_infered: string
name: read_data
arguments: data_label: D26
type_infered: string
name: read_data
arguments: data_label: D328
type_infered: string
name: read_data
arguments: data_label: D292
type_infered: string
name: read_data
arguments: data_label: D59
type_infered: string
name: read_data
arguments: data_label: D302
type_infered: string
name: read_data
arguments: data_label: D273
type_infered: string
name: read_data
arguments: data_label: D415
type_infered: string
name: read_data
arguments: data_label: D75
type_infered: string
name: read_data
arguments: data_label: D716
type_infered: string
name: read_data
arguments: data_label: D547
type_infered: string
name: read_data
arguments: data_label: D789
type_infered: string
name: read_data
arguments: data_label: D749
type_infered: string
name: read_data
arguments: data_label: D653
type_infered: string
name: read_data
arguments: data_label: D135
type_infered: string
name: read_data
arguments: data_label: D337
type_infered: string
name: read_data
arguments: data_label: D129
type_infered: string

tool: D41: Starting user test "%s".


tool: D637: mmap

tool: D517: munmap

tool: D113: munmap_sigsegv

tool: D658: mmap_prot_none

tool: D442: mmap_prot_read

tool: D54: sbrk

tool: D432: sbrk_sigsegv

tool: D617: misbehave

tool: D729: fd_read

tool: D532: fd_devnull

tool: D815: fd_multidesc

tool: D594: fd_readwrite

tool: D657: fd_copy

tool: D387: fd_bad_desc

tool: D267: fd_open_path

tool: D189: fd_dup

tool: D33: fd_pipe

tool: D406: fd_readv

tool: D650: fd_writev

tool: D495: fd_all

tool: D520: signal_basic

tool: D251: signal_send

tool: D583: signal_abort

tool: D23: signal_segfault

tool: D644: signal_stop

tool: D468: signal_cont_masked

tool: D623: signal_mask

tool: D770: signal_mask_nonmaskable

tool: D493: signal_sigsuspend

tool: D498: signal_sigsuspend_stop

tool: D722: signal_handler_mask

tool: D641: fork_wait

tool: D348: fork_signal

tool: D502: fork_sigchld_ignored

tool: D776: lseek_basic

tool: D773: lseek_errors

tool: D732: access_basic

tool: D237: stat

tool: D12: fstat

tool: D124: setjmp

tool: D694: sigaction_with_setjmp

tool: D341: sigaction_handler_returns

tool: D271: vfs_dir

tool: D397: vfs_rw

tool: D760: vfs_relative_dir

tool: D156: vfs_dot_dot_dir

tool: D465: vfs_dot_dir

tool: D293: vfs_dot_dot_across_fs

tool: D227: vfs_trunc

tool: D742: vfs_symlink

tool: D225: vfs_link

tool: D411: vfs_chmod

tool: D684: wait_basic

tool: D44: wait_nohang

tool: D150: setpgid

tool: D587: setpgid_leader

tool: D548: setpgid_child

tool: D39: kill

tool: D756: killpg_same_group

tool: D228: killpg_other_group

tool: D404: pgrp_orphan

tool: D441: session_basic

tool: D422: session_login_name

tool: D424: getcwd

tool: D488: gettimeofday

tool: D26: nanosleep

tool: D328: itimer

tool: D292: get_set_uid

tool: D59: get_set_gid

tool: D302: get_set_groups

tool: D273: sharing_memory_simple

tool: D415: sharing_memory_child_and_grandchild

tool: D75: pty_simple

tool: D716: tty_canon

tool: D547: tty_echo

tool: D789: tty_signals

tool: D749: procstat

tool: D653: pipe_parent_signaled

tool: D135: pipe_child_signaled

tool: D337: No user test "%s" available.


tool: D129: Not enough arguments provided to utest.

assistant: ```c
int main(int argc, char **argv) {
  if (argc < 2) {
    printf("Not enough arguments provided to utest.\n");
    return 1;
  }
  char *test_name = argv[1];
  printf("Starting user test \"%s\".\n", test_name);
  if (strcmp(test_name, "mmap") == 0)
    return test_mmap();
  ;
  if (strcmp(test_name, "munmap") == 0)
    return test_munmap();
  ;
  if (strcmp(test_name, "munmap_sigsegv") == 0)
    return test_munmap_sigsegv();
  ;
  if (strcmp(test_name, "mmap_prot_none") == 0)
    return test_mmap_prot_none();
  ;
  if (strcmp(test_name, "mmap_prot_read") == 0)
    return test_mmap_prot_read();
  ;
  if (strcmp(test_name, "sbrk") == 0)
    return test_sbrk();
  ;
  if (strcmp(test_name, "sbrk_sigsegv") == 0)
    return test_sbrk_sigsegv();
  ;
  if (strcmp(test_name, "misbehave") == 0)
    return test_misbehave();
  ;
  if (strcmp(test_name, "fd_read") == 0)
    return test_fd_read();
  ;
  if (strcmp(test_name, "fd_devnull") == 0)
    return test_fd_devnull();
  ;
  if (strcmp(test_name, "fd_multidesc") == 0)
    return test_fd_multidesc();
  ;
  if (strcmp(test_name, "fd_readwrite") == 0)
    return test_fd_readwrite();
  ;
  if (strcmp(test_name, "fd_copy") == 0)
    return test_fd_copy();
  ;
  if (strcmp(test_name, "fd_bad_desc") == 0)
    return test_fd_bad_desc();
  ;
  if (strcmp(test_name, "fd_open_path") == 0)
    return test_fd_open_path();
  ;
  if (strcmp(test_name, "fd_dup") == 0)
    return test_fd_dup();
  ;
  if (strcmp(test_name, "fd_pipe") == 0)
    return test_fd_pipe();
  ;
  if (strcmp(test_name, "fd_readv") == 0)
    return test_fd_readv();
  ;
  if (strcmp(test_name, "fd_writev") == 0)
    return test_fd_writev();
  ;
  if (strcmp(test_name, "fd_all") == 0)
    return test_fd_all();
  ;
  if (strcmp(test_name, "signal_basic") == 0)
    return test_signal_basic();
  ;
  if (strcmp(test_name, "signal_send") == 0)
    return test_signal_send();
  ;
  if (strcmp(test_name, "signal_abort") == 0)
    return test_signal_abort();
  ;
  if (strcmp(test_name, "signal_segfault") == 0)
    return test_signal_segfault();
  ;
  if (strcmp(test_name, "signal_stop") == 0)
    return test_signal_stop();
  ;
  if (strcmp(test_name, "signal_cont_masked") == 0)
    return test_signal_cont_masked();
  ;
  if (strcmp(test_name, "signal_mask") == 0)
    return test_signal_mask();
  ;
  if (strcmp(test_name, "signal_mask_nonmaskable") == 0)
    return test_signal_mask_nonmaskable();
  ;
  if (strcmp(test_name, "signal_sigsuspend") == 0)
    return test_signal_sigsuspend();
  ;
  if (strcmp(test_name, "signal_sigsuspend_stop") == 0)
    return test_signal_sigsuspend_stop();
  ;
  if (strcmp(test_name, "signal_handler_mask") == 0)
    return test_signal_handler_mask();
  ;
  if (strcmp(test_name, "fork_wait") == 0)
    return test_fork_wait();
  ;
  if (strcmp(test_name, "fork_signal") == 0)
    return test_fork_signal();
  ;
  if (strcmp(test_name, "fork_sigchld_ignored") == 0)
    return test_fork_sigchld_ignored();
  ;
  if (strcmp(test_name, "lseek_basic") == 0)
    return test_lseek_basic();
  ;
  if (strcmp(test_name, "lseek_errors") == 0)
    return test_lseek_errors();
  ;
  if (strcmp(test_name, "access_basic") == 0)
    return test_access_basic();
  ;
  if (strcmp(test_name, "stat") == 0)
    return test_stat();
  ;
  if (strcmp(test_name, "fstat") == 0)
    return test_fstat();
  ;
  if (strcmp(test_name, "setjmp") == 0)
    return test_setjmp();
  ;
  if (strcmp(test_name, "sigaction_with_setjmp") == 0)
    return test_sigaction_with_setjmp();
  ;
  if (strcmp(test_name, "sigaction_handler_returns") == 0)
    return test_sigaction_handler_returns();
  ;
  if (strcmp(test_name, "vfs_dir") == 0)
    return test_vfs_dir();
  ;
  if (strcmp(test_name, "vfs_rw") == 0)
    return test_vfs_rw();
  ;
  if (strcmp(test_name, "vfs_relative_dir") == 0)
    return test_vfs_relative_dir();
  ;
  if (strcmp(test_name, "vfs_dot_dot_dir") == 0)
    return test_vfs_dot_dot_dir();
  ;
  if (strcmp(test_name, "vfs_dot_dir") == 0)
    return test_vfs_dot_dir();
  ;
  if (strcmp(test_name, "vfs_dot_dot_across_fs") == 0)
    return test_vfs_dot_dot_across_fs();
  ;
  if (strcmp(test_name, "vfs_trunc") == 0)
    return test_vfs_trunc();
  ;
  if (strcmp(test_name, "vfs_symlink") == 0)
    return test_vfs_symlink();
  ;
  if (strcmp(test_name, "vfs_link") == 0)
    return test_vfs_link();
  ;
  if (strcmp(test_name, "vfs_chmod") == 0)
    return test_vfs_chmod();
  ;
  if (strcmp(test_name, "wait_basic") == 0)
    return test_wait_basic();
  ;
  if (strcmp(test_name, "wait_nohang") == 0)
    return test_wait_nohang();
  ;
  if (strcmp(test_name, "setpgid") == 0)
    return test_setpgid();
  ;
  if (strcmp(test_name, "setpgid_leader") == 0)
    return test_setpgid_leader();
  ;
  if (strcmp(test_name, "setpgid_child") == 0)
    return test_setpgid_child();
  ;
  if (strcmp(test_name, "kill") == 0)
    return test_kill();
  ;
  if (strcmp(test_name, "killpg_same_group") == 0)
    return test_killpg_same_group();
  ;
  if (strcmp(test_name, "killpg_other_group") == 0)
    return test_killpg_other_group();
  ;
  if (strcmp(test_name, "pgrp_orphan") == 0)
    return test_pgrp_orphan();
  ;
  if (strcmp(test_name, "session_basic") == 0)
    return test_session_basic();
  ;
  if (strcmp(test_name, "session_login_name") == 0)
    return test_session_login_name();
  ;
  if (strcmp(test_name, "getcwd") == 0)
    return test_getcwd();
  ;
  if (strcmp(test_name, "gettimeofday") == 0)
    return test_gettimeofday();
  ;
  if (strcmp(test_name, "nanosleep") == 0)
    return test_nanosleep();
  ;
  if (strcmp(test_name, "itimer") == 0)
    return test_itimer();
  ;
  if (strcmp(test_name, "get_set_uid") == 0)
    return test_get_set_uid();
  ;
  if (strcmp(test_name, "get_set_gid") == 0)
    return test_get_set_gid();
  ;
  if (strcmp(test_name, "get_set_groups") == 0)
    return test_get_set_groups();
  ;
  if (strcmp(test_name, "sharing_memory_simple") == 0)
    return test_sharing_memory_simple();
  ;
  if (strcmp(test_name, "sharing_memory_child_and_grandchild") == 0)
    return test_sharing_memory_child_and_grandchild();
  ;
  if (strcmp(test_name, "pty_simple") == 0)
    return test_pty_simple();
  ;
  if (strcmp(test_name, "tty_canon") == 0)
    return test_tty_canon();
  ;
  if (strcmp(test_name, "tty_echo") == 0)
    return test_tty_echo();
  ;
  if (strcmp(test_name, "tty_signals") == 0)
    return test_tty_signals();
  ;
  if (strcmp(test_name, "procstat") == 0)
    return test_procstat();
  ;
  if (strcmp(test_name, "pipe_parent_signaled") == 0)
    return test_pipe_parent_signaled();
  ;
  if (strcmp(test_name, "pipe_child_signaled") == 0)
    return test_pipe_child_signaled();
  ;
  printf("No user test \"%s\" available.\n", test_name);
  return 1;
}
```