github.com/opencontainers/runc@v1.2.0-rc.1.0.20240520010911-492dc558cdd6/tests/integration/start_detached.bats (about)

     1  #!/usr/bin/env bats
     2  
     3  load helpers
     4  
     5  function setup() {
     6  	setup_busybox
     7  }
     8  
     9  function teardown() {
    10  	teardown_bundle
    11  }
    12  
    13  @test "runc run detached" {
    14  	# run busybox detached
    15  	runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
    16  	[ "$status" -eq 0 ]
    17  
    18  	# check state
    19  	testcontainer test_busybox running
    20  }
    21  
    22  @test "runc run detached ({u,g}id != 0)" {
    23  	# cannot start containers as another user in rootless setup without idmap
    24  	[ $EUID -ne 0 ] && requires rootless_idmap
    25  
    26  	# replace "uid": 0 with "uid": 1000
    27  	# and do a similar thing for gid.
    28  	update_config ' (.. | select(.uid? == 0)) .uid |= 1000
    29  		| (.. | select(.gid? == 0)) .gid |= 100'
    30  
    31  	# run busybox detached
    32  	runc run -d --console-socket "$CONSOLE_SOCKET" test_busybox
    33  	[ "$status" -eq 0 ]
    34  
    35  	# check state
    36  	testcontainer test_busybox running
    37  }
    38  
    39  @test "runc run detached --pid-file" {
    40  	# run busybox detached
    41  	runc run --pid-file pid.txt -d --console-socket "$CONSOLE_SOCKET" test_busybox
    42  	[ "$status" -eq 0 ]
    43  
    44  	# check state
    45  	testcontainer test_busybox running
    46  
    47  	# check pid.txt was generated
    48  	[ -e pid.txt ]
    49  
    50  	[[ "$(cat pid.txt)" == $(__runc state test_busybox | jq '.pid') ]]
    51  }
    52  
    53  @test "runc run detached --pid-file with new CWD" {
    54  	bundle="$(pwd)"
    55  	# create pid_file directory as the CWD
    56  	mkdir pid_file
    57  	cd pid_file
    58  
    59  	# run busybox detached
    60  	runc run --pid-file pid.txt -d -b "$bundle" --console-socket "$CONSOLE_SOCKET" test_busybox
    61  	[ "$status" -eq 0 ]
    62  
    63  	# check state
    64  	testcontainer test_busybox running
    65  
    66  	# check pid.txt was generated
    67  	[ -e pid.txt ]
    68  
    69  	[[ "$(cat pid.txt)" == $(__runc state test_busybox | jq '.pid') ]]
    70  }