// File: /workspace/github_cpp_makefile_star2_O2/mh0fm4[P]SCDC/test/units/redirect/redirect_cli.c
// Function: test_conf
void test_conf(const char *uri)
{
  redirect_call_t rc;

  redirect_call_create_scdc(&rc, "conf", uri);

  char input_char = '7';
  redirect_call_put_input_conf_char(&rc, "char", input_char);

  int input_int = 7;
  redirect_call_put_input_conf_int(&rc, "int", input_int);

  void *input_void_p = (void *) 0x77777777;
  redirect_call_put_input_conf_void_p(&rc, "void_p", input_void_p);

  const char *input_str = "7 7 7 7 7 7 7 7";
  rdint_t input_str_n = strlen(input_str);
  redirect_call_put_input_conf_str(&rc, "str", input_str, input_str_n);

  int input_ints[2] = { 7, 77 };
  redirect_call_put_input_conf_ints(&rc, "ints", input_ints, 2);

  long output_long = 7;
  redirect_call_put_output_conf_long(&rc, "long", output_long);

  TRACE_F("input: char: %c, int: %d, void_p: %p, str: '%.*s' (%" rdint_fmt "), ints: [%d, %d]", input_char, input_int, input_void_p, (int) input_str_n, input_str, input_str_n, input_ints[0], input_ints[1]);
  TRACE_F("output: long: %ld", output_long);

  redirect_call_execute(&rc);

  char output_char = 0;
  redirect_call_get_output_conf_char(&rc, "char", &output_char);

  int output_int = 0;
  redirect_call_get_output_conf_int(&rc, "int", &output_int);

  void *output_void_p = NULL;
  redirect_call_get_output_conf_void_p(&rc, "void_p", &output_void_p);

  char output_str[256];
  rdint_t output_str_n = 0;
  redirect_call_get_output_conf_str(&rc, "str", output_str, &output_str_n);

  int output_ints[2] = { 0, 0 };
  redirect_call_get_output_conf_ints(&rc, "ints", output_ints, 2);

  TRACE_F("output: char: %c, int: %d, void_p: %p, str: '%.*s' (%" rdint_fmt "), ints: [%d, %d]", output_char, output_int, output_void_p, (int) output_str_n, output_str, output_str_n, output_ints[0], output_ints[1]);

  redirect_call_destroy_scdc(&rc);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xce8, %rsp            # imm = 0xCE8
movq %rdi, %rdx
leaq 0x4775f(%rip), %rsi     # 0x53a8a
leaq 0x138(%rsp), %rbx
movq %rbx, %rdi
callq 0xed28
leaq 0x43d4f(%rip), %rsi     # 0x50091
pushq $0x37
popq %rdx
movq %rbx, %rdi
callq 0x10a6c
leaq 0x4449c(%rip), %rsi     # 0x507f0
pushq $0x7
popq %rdx
movq %rbx, %rdi
callq 0x10d33
leaq 0x43d30(%rip), %rsi     # 0x50096
movl $0x77777777, %edx       # imm = 0x77777777
movq %rbx, %rdi
callq 0xfb56
leaq 0x43d33(%rip), %rsi     # 0x500ad
leaq 0x43d1c(%rip), %r15     # 0x5009d
pushq $0xf
popq %rcx
movq %rbx, %rdi
movq %r15, %rdx
callq 0xf52f
movabsq $0x4d00000007, %rax     # imm = 0x4D00000007
leaq 0x28(%rsp), %r12
movq %rax, (%r12)
leaq 0x43d08(%rip), %rsi     # 0x500b1
pushq $0x2
popq %rcx
movq %rbx, %rdi
movq %r12, %rdx
callq 0x10e31
leaq 0x43cf8(%rip), %rsi     # 0x500b6
pushq $0x7
popq %rdx
movq %rbx, %rdi
callq 0xf9fb
movq 0x68be8(%rip), %r14     # 0x74fb8
movq (%r14), %rdi
leaq 0x43c98(%rip), %rbp     # 0x50072
leaq 0x43cda(%rip), %r13     # 0x500bb
movq %rbp, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0xb7c0
movq (%r14), %rdi
movl (%r12), %r10d
movl 0x4(%r12), %r11d
leaq 0x43cc4(%rip), %rsi     # 0x500c5
pushq $0xf
popq %r9
movl $0x77777777, %r8d       # imm = 0x77777777
pushq $0x37
popq %rdx
pushq $0x7
popq %rcx
xorl %eax, %eax
pushq %r11
pushq %r10
pushq $0xf
pushq %r15
callq 0xb7c0
addq $0x20, %rsp
movq (%r14), %rsi
pushq $0xa
popq %r15
movl %r15d, %edi
callq 0xb6b0
movq (%r14), %rdi
movq %rbp, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0xb7c0
movq (%r14), %rdi
leaq 0x43cc0(%rip), %rsi     # 0x5010d
pushq $0x7
popq %rdx
xorl %eax, %eax
callq 0xb7c0
movq (%r14), %rsi
movl %r15d, %edi
callq 0xb6b0
movq %rbx, %rdi
callq 0xee69
leaq 0xb(%rsp), %rdx
movb $0x0, (%rdx)
movq %rbx, %rdi
leaq 0x43c15(%rip), %rsi     # 0x50091
callq 0x10ab7
leaq 0xc(%rsp), %rbp
andl $0x0, (%rbp)
movq %rbx, %rdi
leaq 0x4435c(%rip), %rsi     # 0x507f0
movq %rbp, %rdx
callq 0x10d9c
leaq 0x20(%rsp), %r12
andq $0x0, (%r12)
movq %rbx, %rdi
leaq 0x43be6(%rip), %rsi     # 0x50096
movq %r12, %rdx
callq 0xfc06
leaq 0x18(%rsp), %r13
andq $0x0, (%r13)
leaq 0x30(%rsp), %rdx
movq %rbx, %rdi
leaq 0x43bdc(%rip), %rsi     # 0x500ad
movq %r13, %rcx
callq 0xf552
leaq 0x10(%rsp), %r15
andq $0x0, (%r15)
movq %rbx, %rdi
leaq 0x43bc5(%rip), %rsi     # 0x500b1
movq %r15, %rdx
pushq $0x2
popq %rcx
callq 0x10ec7
movq (%r14), %rdi
leaq 0x43b71(%rip), %rsi     # 0x50072
leaq 0x43bb3(%rip), %rdx     # 0x500bb
xorl %eax, %eax
callq 0xb7c0
movq (%r14), %rdi
leaq 0xb(%rsp), %rax
movsbl (%rax), %edx
movl (%rbp), %ecx
movq (%r12), %r8
movq (%r13), %r9
movl (%r15), %r10d
movl 0x4(%r15), %r11d
leaq 0x43bec(%rip), %rsi     # 0x5011f
xorl %eax, %eax
pushq %r11
pushq %r10
pushq %r9
leaq 0x48(%rsp), %r10
pushq %r10
callq 0xb7c0
addq $0x20, %rsp
movq (%r14), %rsi
pushq $0xa
popq %rdi
callq 0xb6b0
movq %rbx, %rdi
callq 0xede5
addq $0xce8, %rsp            # imm = 0xCE8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq