Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion test_runtime.sh
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,17 @@ cp runtimetest ${TESTDIR}

oci-runtime-tool generate --output "${TESTDIR}/config.json" "${TEST_ARGS[@]}" --rootfs '.'

TESTCMD="${RUNTIME} start $(uuidgen)"
conID=$(uuidgen)

CREATECMD="${RUNTIME} create ${conID}"
TESTCMD="${RUNTIME} start ${conID}"
pushd $TESTDIR > /dev/null
if ! ${CREATECMD}; then
info "Runtime is ${RUNTIME}, no need to create before start"
else
info "Runtime is ${RUNTIME}, need to create before start"
fi

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If created succeed, we don't need to print. But if failed, we should judge to stop or continue depend on which kind of error.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when exitcode of command "${RUNTIME} create ${conID}" is 1, runtime has no command "create" continue to run command "start". If exitcode of command "${RUNTIME} create ${conID}" is -1, runtime create container fail and print error. but I don't know how to get exitcode of command "${RUNTIME} create ${conID}".

Copy link

@Mashimiao Mashimiao Oct 8, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when executed "${RUNTIME} create ${conID}", you can use $? to get the exit code.
just as
sleep 1
echo $?
0

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but if runtime has no command "create", execute "${RUNTIME} create ${conID}" will cause a crash.https://github.com/opencontainers/runtime-tools/blob/master/test_runtime.sh#L2

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If necessary, I think we can remove it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is unwise to remove it.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my opinion, just now it's not necessary to remove. You can just error out if failed and continue when created succeed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On Sat, Oct 08, 2016 at 07:05:08PM -0700, heartlock wrote:

but if runtime has no command "create"…

Then it's not compliant with opencontainers/runtime-spec#513 or the current create requirements. You can use:

${RUNTIME} create ${conID} || die "failed to create ${conID}"
${RUNTIME} start ${conID} || die "failed to start ${conID}"

with a die command that prints the message to stderr and exits 1.

But the real problem with converting test_runtime.sh to the spec's current create/start API is that the start exit code is not the container process's exit code. You have to do subreaper magic or similar to see how runtimetest exited.


if ! ${TESTCMD}; then
error "Runtime ${RUNTIME} failed validation"
else
Expand Down