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

```asm
<main>:
  endbr64
  push   %rbp
  cmp    $0x1,%edi
  jle    L243
  mov    0x8(%rsi),%rbp
  lea    D578(%rip),%rdi
  xor    %eax,%eax
  mov    %rbp,%rsi
  call   <printf@plt>
  lea    D244(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L632
  lea    D121(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L347
  lea    D594(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L86
  lea    D54(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L292
  lea    D692(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L509
  lea    D545(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L480
  lea    D494(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L790
  lea    D568(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L33
  lea    D449(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L664
  lea    D268(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L291
  lea    D227(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L485
  lea    D116(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L605
  lea    D328(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L297
  lea    D193(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L84
  lea    D713(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L499
  lea    D321(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L150
  lea    D117(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L280
  lea    D448(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L171
  lea    D11(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L152
  lea    D618(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L260
  lea    D104(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L72
  lea    D161(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L638
  lea    D819(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L629
  lea    D774(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L6
  lea    D622(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L587
  lea    D732(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L690
  lea    D86(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L363
  lea    D155(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L580
  lea    D384(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L255
  lea    D547(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L336
  lea    D289(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L202
  lea    D314(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L435
  lea    D763(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L261
  lea    D539(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L367
  lea    D511(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L267
  lea    D125(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L550
  lea    D141(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L274
  lea    D786(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L643
  lea    D250(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L569
  lea    D682(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L624
  lea    D277(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L777
  lea    D48(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L693
  lea    D39(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L23
  lea    D573(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L247
  lea    D648(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L557
  lea    D653(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L308
  lea    D698(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L91
  lea    D623(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L531
  lea    D15(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L220
  lea    D571(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L111
  lea    D38(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L545
  lea    D103(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L471
  lea    D796(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L117
  lea    D719(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L616
  lea    D411(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L275
  lea    D502(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L776
  lea    D601(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L127
  lea    D403(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L749
  lea    D291(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L159
  lea    D415(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L533
  lea    D366(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L687
  lea    D45(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L620
  lea    D685(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L508
  lea    D530(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L316
  lea    D660(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L352
  lea    D81(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L626
  lea    D322(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L241
  lea    D602(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L323
  lea    D540(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L484
  lea    D723(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L334
  lea    D507(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L764
  lea    D213(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L64
  lea    D528(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L126
  lea    D163(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L289
  lea    D802(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L536
  lea    D429(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L553
  lea    D371(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L222
  lea    D240(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L235
  lea    D308(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L511
  mov    %rbp,%rsi
  lea    D482(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L432
L632:
  pop    %rbp
  jmp    2810 <test_mmap@plt>
L243:
  lea    D77(%rip),%rdi
  call   <puts@plt>
L432:
  mov    $0x1,%eax
  pop    %rbp
  ret
L292:
  pop    %rbp
  jmp    2630 <test_mmap_prot_none@plt>
L347:
  pop    %rbp
  jmp    28b0 <test_munmap@plt>
L86:
  pop    %rbp
  jmp    29e0 <test_munmap_sigsegv@plt>
L790:
  pop    %rbp
  jmp    2740 <test_sbrk_sigsegv@plt>
L509:
  pop    %rbp
  jmp    2590 <test_mmap_prot_read@plt>
L480:
  pop    %rbp
  jmp    25e0 <test_sbrk@plt>
L33:
  pop    %rbp
  jmp    2860 <test_misbehave@plt>
L664:
  pop    %rbp
  jmp    2650 <test_fd_read@plt>
L291:
  pop    %rbp
  jmp    2700 <test_fd_devnull@plt>
L485:
  pop    %rbp
  jmp    29a0 <test_fd_multidesc@plt>
L605:
  pop    %rbp
  jmp    28a0 <test_fd_readwrite@plt>
L297:
  pop    %rbp
  jmp    2670 <test_fd_copy@plt>
L84:
  pop    %rbp
  jmp    29d0 <test_fd_bad_desc@plt>
L499:
  pop    %rbp
  jmp    2a10 <test_fd_open_path@plt>
L150:
  pop    %rbp
  jmp    27c0 <test_fd_dup@plt>
L280:
  pop    %rbp
  jmp    25a0 <test_fd_pipe@plt>
L171:
  pop    %rbp
  jmp    2620 <test_fd_readv@plt>
L152:
  pop    %rbp
  jmp    27a0 <test_fd_writev@plt>
L72:
  pop    %rbp
  jmp    2780 <test_signal_basic@plt>
L260:
  pop    %rbp
  jmp    26a0 <test_fd_all@plt>
L511:
  pop    %rbp
  jmp    2970 <test_pipe_child_signaled@plt>
L235:
  pop    %rbp
  jmp    2800 <test_pipe_parent_signaled@plt>
L222:
  pop    %rbp
  jmp    2960 <test_procstat@plt>
L553:
  pop    %rbp
  jmp    29b0 <test_tty_signals@plt>
L536:
  pop    %rbp
  jmp    2890 <test_tty_echo@plt>
L289:
  pop    %rbp
  jmp    2840 <test_tty_canon@plt>
L126:
  pop    %rbp
  jmp    2830 <test_pty_simple@plt>
L64:
  pop    %rbp
  jmp    2770 <test_sharing_memory_child_and_grandchild@plt>
L764:
  pop    %rbp
  jmp    27f0 <test_sharing_memory_simple@plt>
L334:
  pop    %rbp
  jmp    2760 <test_get_set_groups@plt>
L274:
  pop    %rbp
  jmp    26d0 <test_access_basic@plt>
L550:
  pop    %rbp
  jmp    2980 <test_lseek_errors@plt>
L267:
  pop    %rbp
  jmp    29c0 <test_lseek_basic@plt>
L367:
  pop    %rbp
  jmp    2a40 <test_fork_sigchld_ignored@plt>
L261:
  pop    %rbp
  jmp    2930 <test_fork_signal@plt>
L435:
  pop    %rbp
  jmp    27d0 <test_fork_wait@plt>
L202:
  pop    %rbp
  jmp    25c0 <test_signal_handler_mask@plt>
L336:
  pop    %rbp
  jmp    2580 <test_signal_sigsuspend_stop@plt>
L255:
  pop    %rbp
  jmp    2a70 <test_signal_sigsuspend@plt>
L580:
  pop    %rbp
  jmp    2950 <test_signal_mask_nonmaskable@plt>
L363:
  pop    %rbp
  jmp    25b0 <test_signal_mask@plt>
L690:
  pop    %rbp
  jmp    2940 <test_signal_cont_masked@plt>
L587:
  pop    %rbp
  jmp    2a20 <test_signal_stop@plt>
L6:
  pop    %rbp
  jmp    2a50 <test_signal_segfault@plt>
L629:
  pop    %rbp
  jmp    2990 <test_signal_abort@plt>
L638:
  pop    %rbp
  jmp    2690 <test_signal_send@plt>
L484:
  pop    %rbp
  jmp    2710 <test_get_set_gid@plt>
L323:
  pop    %rbp
  jmp    2750 <test_get_set_uid@plt>
L241:
  pop    %rbp
  jmp    2560 <test_itimer@plt>
L626:
  pop    %rbp
  jmp    2850 <test_nanosleep@plt>
L352:
  pop    %rbp
  jmp    25f0 <test_gettimeofday@plt>
L316:
  pop    %rbp
  jmp    2880 <test_getcwd@plt>
L508:
  pop    %rbp
  jmp    28c0 <test_session_login_name@plt>
L620:
  pop    %rbp
  jmp    28e0 <test_session_basic@plt>
L687:
  pop    %rbp
  jmp    28d0 <test_pgrp_orphan@plt>
L533:
  pop    %rbp
  jmp    2660 <test_killpg_other_group@plt>
L159:
  pop    %rbp
  jmp    2600 <test_killpg_same_group@plt>
L749:
  pop    %rbp
  jmp    27e0 <test_kill@plt>
L127:
  pop    %rbp
  jmp    2a30 <test_setpgid_child@plt>
L776:
  pop    %rbp
  jmp    2a00 <test_setpgid_leader@plt>
L275:
  pop    %rbp
  jmp    2910 <test_setpgid@plt>
L616:
  pop    %rbp
  jmp    2870 <test_wait_nohang@plt>
L117:
  pop    %rbp
  jmp    2610 <test_wait_basic@plt>
L471:
  pop    %rbp
  jmp    2570 <test_vfs_chmod@plt>
L545:
  pop    %rbp
  jmp    2a60 <test_vfs_link@plt>
L111:
  pop    %rbp
  jmp    26c0 <test_vfs_symlink@plt>
L220:
  pop    %rbp
  jmp    2720 <test_vfs_trunc@plt>
L531:
  pop    %rbp
  jmp    26b0 <test_vfs_dot_dot_across_fs@plt>
L91:
  pop    %rbp
  jmp    2920 <test_vfs_dot_dir@plt>
L308:
  pop    %rbp
  jmp    27b0 <test_vfs_dot_dot_dir@plt>
L557:
  pop    %rbp
  jmp    25d0 <test_vfs_relative_dir@plt>
L247:
  pop    %rbp
  jmp    26f0 <test_vfs_rw@plt>
L23:
  pop    %rbp
  jmp    2900 <test_vfs_dir@plt>
L693:
  pop    %rbp
  jmp    2790 <test_sigaction_handler_returns@plt>
L777:
  pop    %rbp
  jmp    28f0 <test_sigaction_with_setjmp@plt>
L624:
  pop    %rbp
  jmp    26e0 <test_setjmp@plt>
L569:
  pop    %rbp
  jmp    2680 <test_fstat@plt>
L643:
  pop    %rbp
  jmp    29f0 <test_stat@plt>
```

tool_calls: name: parse_data
arguments: data_label: D578
data_type: string
name: parse_data
arguments: data_label: D244
data_type: string
name: parse_data
arguments: data_label: D121
data_type: string
name: parse_data
arguments: data_label: D594
data_type: string
name: parse_data
arguments: data_label: D54
data_type: string
name: parse_data
arguments: data_label: D692
data_type: string
name: parse_data
arguments: data_label: D545
data_type: string
name: parse_data
arguments: data_label: D494
data_type: string
name: parse_data
arguments: data_label: D568
data_type: string
name: parse_data
arguments: data_label: D449
data_type: string
name: parse_data
arguments: data_label: D268
data_type: string
name: parse_data
arguments: data_label: D227
data_type: string
name: parse_data
arguments: data_label: D116
data_type: string
name: parse_data
arguments: data_label: D328
data_type: string
name: parse_data
arguments: data_label: D193
data_type: string
name: parse_data
arguments: data_label: D713
data_type: string
name: parse_data
arguments: data_label: D321
data_type: string
name: parse_data
arguments: data_label: D117
data_type: string
name: parse_data
arguments: data_label: D448
data_type: string
name: parse_data
arguments: data_label: D11
data_type: string
name: parse_data
arguments: data_label: D618
data_type: string
name: parse_data
arguments: data_label: D104
data_type: string
name: parse_data
arguments: data_label: D161
data_type: string
name: parse_data
arguments: data_label: D819
data_type: string
name: parse_data
arguments: data_label: D774
data_type: string
name: parse_data
arguments: data_label: D622
data_type: string
name: parse_data
arguments: data_label: D732
data_type: string
name: parse_data
arguments: data_label: D86
data_type: string
name: parse_data
arguments: data_label: D155
data_type: string
name: parse_data
arguments: data_label: D384
data_type: string
name: parse_data
arguments: data_label: D547
data_type: string
name: parse_data
arguments: data_label: D289
data_type: string
name: parse_data
arguments: data_label: D314
data_type: string
name: parse_data
arguments: data_label: D763
data_type: string
name: parse_data
arguments: data_label: D539
data_type: string
name: parse_data
arguments: data_label: D511
data_type: string
name: parse_data
arguments: data_label: D125
data_type: string
name: parse_data
arguments: data_label: D141
data_type: string
name: parse_data
arguments: data_label: D786
data_type: string
name: parse_data
arguments: data_label: D250
data_type: string
name: parse_data
arguments: data_label: D682
data_type: string
name: parse_data
arguments: data_label: D277
data_type: string
name: parse_data
arguments: data_label: D48
data_type: string
name: parse_data
arguments: data_label: D39
data_type: string
name: parse_data
arguments: data_label: D573
data_type: string
name: parse_data
arguments: data_label: D648
data_type: string
name: parse_data
arguments: data_label: D653
data_type: string
name: parse_data
arguments: data_label: D698
data_type: string
name: parse_data
arguments: data_label: D623
data_type: string
name: parse_data
arguments: data_label: D15
data_type: string
name: parse_data
arguments: data_label: D571
data_type: string
name: parse_data
arguments: data_label: D38
data_type: string
name: parse_data
arguments: data_label: D103
data_type: string
name: parse_data
arguments: data_label: D796
data_type: string
name: parse_data
arguments: data_label: D719
data_type: string
name: parse_data
arguments: data_label: D411
data_type: string
name: parse_data
arguments: data_label: D502
data_type: string
name: parse_data
arguments: data_label: D601
data_type: string
name: parse_data
arguments: data_label: D403
data_type: string
name: parse_data
arguments: data_label: D291
data_type: string
name: parse_data
arguments: data_label: D415
data_type: string
name: parse_data
arguments: data_label: D366
data_type: string
name: parse_data
arguments: data_label: D45
data_type: string
name: parse_data
arguments: data_label: D685
data_type: string
name: parse_data
arguments: data_label: D530
data_type: string
name: parse_data
arguments: data_label: D660
data_type: string
name: parse_data
arguments: data_label: D81
data_type: string
name: parse_data
arguments: data_label: D322
data_type: string
name: parse_data
arguments: data_label: D602
data_type: string
name: parse_data
arguments: data_label: D540
data_type: string
name: parse_data
arguments: data_label: D723
data_type: string
name: parse_data
arguments: data_label: D507
data_type: string
name: parse_data
arguments: data_label: D213
data_type: string
name: parse_data
arguments: data_label: D528
data_type: string
name: parse_data
arguments: data_label: D163
data_type: string
name: parse_data
arguments: data_label: D802
data_type: string
name: parse_data
arguments: data_label: D429
data_type: string
name: parse_data
arguments: data_label: D371
data_type: string
name: parse_data
arguments: data_label: D240
data_type: string
name: parse_data
arguments: data_label: D308
data_type: string
name: parse_data
arguments: data_label: D482
data_type: string
name: parse_data
arguments: data_label: D77
data_type: string

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


tool: D244: mmap

tool: D121: munmap

tool: D594: munmap_sigsegv

tool: D54: mmap_prot_none

tool: D692: mmap_prot_read

tool: D545: sbrk

tool: D494: sbrk_sigsegv

tool: D568: misbehave

tool: D449: fd_read

tool: D268: fd_devnull

tool: D227: fd_multidesc

tool: D116: fd_readwrite

tool: D328: fd_copy

tool: D193: fd_bad_desc

tool: D713: fd_open_path

tool: D321: fd_dup

tool: D117: fd_pipe

tool: D448: fd_readv

tool: D11: fd_writev

tool: D618: fd_all

tool: D104: signal_basic

tool: D161: signal_send

tool: D819: signal_abort

tool: D774: signal_segfault

tool: D622: signal_stop

tool: D732: signal_cont_masked

tool: D86: signal_mask

tool: D155: signal_mask_nonmaskable

tool: D384: signal_sigsuspend

tool: D547: signal_sigsuspend_stop

tool: D289: signal_handler_mask

tool: D314: fork_wait

tool: D763: fork_signal

tool: D539: fork_sigchld_ignored

tool: D511: lseek_basic

tool: D125: lseek_errors

tool: D141: access_basic

tool: D786: stat

tool: D250: fstat

tool: D682: setjmp

tool: D277: sigaction_with_setjmp

tool: D48: sigaction_handler_returns

tool: D39: vfs_dir

tool: D573: vfs_rw

tool: D648: vfs_relative_dir

tool: D653: vfs_dot_dot_dir

tool: D698: vfs_dot_dir

tool: D623: vfs_dot_dot_across_fs

tool: D15: vfs_trunc

tool: D571: vfs_symlink

tool: D38: vfs_link

tool: D103: vfs_chmod

tool: D796: wait_basic

tool: D719: wait_nohang

tool: D411: setpgid

tool: D502: setpgid_leader

tool: D601: setpgid_child

tool: D403: kill

tool: D291: killpg_same_group

tool: D415: killpg_other_group

tool: D366: pgrp_orphan

tool: D45: session_basic

tool: D685: session_login_name

tool: D530: getcwd

tool: D660: gettimeofday

tool: D81: nanosleep

tool: D322: itimer

tool: D602: get_set_uid

tool: D540: get_set_gid

tool: D723: get_set_groups

tool: D507: sharing_memory_simple

tool: D213: sharing_memory_child_and_grandchild

tool: D528: pty_simple

tool: D163: tty_canon

tool: D802: tty_echo

tool: D429: tty_signals

tool: D371: procstat

tool: D240: pipe_parent_signaled

tool: D308: pipe_child_signaled

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


tool: D77: 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;
}
```