diff options
32 files changed, 0 insertions, 509 deletions
diff --git a/kokoro/benchmark_tests.cfg b/kokoro/benchmark_tests.cfg deleted file mode 100644 index f85cc9681..000000000 --- a/kokoro/benchmark_tests.cfg +++ /dev/null @@ -1,26 +0,0 @@ -build_file : 'repo/scripts/benchmark.sh' - - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id : 73898 - keyname : 'gvisor-benchmarks-service-account' - }, - } -} - -env_vars { - key : 'PROJECT' - value : 'gvisor-benchmarks' -} - -env_vars { - key : 'ZONE' - value : 'us-central1-b' -} - -env_vars { - key : 'GCLOUD_CREDENTIALS' - value : '73898_gvisor-benchmarks-service-account' -} diff --git a/kokoro/build.cfg b/kokoro/build.cfg deleted file mode 100644 index c9ceda947..000000000 --- a/kokoro/build.cfg +++ /dev/null @@ -1,24 +0,0 @@ -build_file: "repo/scripts/build.sh" - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73898 - keyname: "kokoro-repo-key" - } - } -} - -env_vars { - key: "KOKORO_REPO_KEY" - value: "73898_kokoro-repo-key" -} - -action { - define_artifacts { - regex: "**/runsc" - regex: "**/runsc.*" - regex: "**/dists/**" - regex: "**/pool/**" - } -} diff --git a/kokoro/build_tests.cfg b/kokoro/build_tests.cfg deleted file mode 100644 index c64b7e679..000000000 --- a/kokoro/build_tests.cfg +++ /dev/null @@ -1 +0,0 @@ -build_file: "repo/scripts/build.sh" diff --git a/kokoro/common.cfg b/kokoro/common.cfg deleted file mode 100644 index 669a2e458..000000000 --- a/kokoro/common.cfg +++ /dev/null @@ -1,29 +0,0 @@ -# Give Kokoro access to Remote Build Executor (RBE) service account key. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73898 - keyname: "kokoro-rbe-service-account" - } - } -} - -# Configure bazel to access RBE. -bazel_setting { - # Our GCP project name. - project_id: "gvisor-rbe" - - # Use RBE for execution as well as caching. - local_execution: false - - # This must match the values in the job config. - auth_credential: { - keystore_config_id: 73898 - keyname: "kokoro-rbe-service-account" - } - - # Do not change unless you know what you are doing. - bes_backend_address: "buildeventservice.googleapis.com" - foundry_backend_address: "remotebuildexecution.googleapis.com" - upsalite_frontend_address: "https://source.cloud.google.com" -} diff --git a/kokoro/do_tests.cfg b/kokoro/do_tests.cfg deleted file mode 100644 index b45ec0b42..000000000 --- a/kokoro/do_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/do_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/kokoro/docker_tests.cfg b/kokoro/docker_tests.cfg deleted file mode 100644 index 0a0ef87ed..000000000 --- a/kokoro/docker_tests.cfg +++ /dev/null @@ -1,10 +0,0 @@ -build_file: "repo/scripts/docker_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc_logs_*.tar.gz" - } -} diff --git a/kokoro/go.cfg b/kokoro/go.cfg deleted file mode 100644 index b9c1fcb12..000000000 --- a/kokoro/go.cfg +++ /dev/null @@ -1,20 +0,0 @@ -build_file: "repo/scripts/go.sh" - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73898 - keyname: "kokoro-github-access-token" - } - } -} - -env_vars { - key: "KOKORO_GITHUB_ACCESS_TOKEN" - value: "73898_kokoro-github-access-token" -} - -env_vars { - key: "KOKORO_GO_PUSH" - value: "true" -} diff --git a/kokoro/go_tests.cfg b/kokoro/go_tests.cfg deleted file mode 100644 index 5eb51041a..000000000 --- a/kokoro/go_tests.cfg +++ /dev/null @@ -1 +0,0 @@ -build_file: "repo/scripts/go.sh" diff --git a/kokoro/hostnet_tests.cfg b/kokoro/hostnet_tests.cfg deleted file mode 100644 index 520dc55a3..000000000 --- a/kokoro/hostnet_tests.cfg +++ /dev/null @@ -1,10 +0,0 @@ -build_file: "repo/scripts/hostnet_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc_logs_*.tar.gz" - } -} diff --git a/kokoro/iptables_tests.cfg b/kokoro/iptables_tests.cfg deleted file mode 100644 index a30d82591..000000000 --- a/kokoro/iptables_tests.cfg +++ /dev/null @@ -1,10 +0,0 @@ -build_file: "repo/scripts/iptables_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc_logs_*.tar.gz" - } -} diff --git a/kokoro/issue_reviver.cfg b/kokoro/issue_reviver.cfg deleted file mode 100644 index 2370d9250..000000000 --- a/kokoro/issue_reviver.cfg +++ /dev/null @@ -1,15 +0,0 @@ -build_file: "repo/scripts/issue_reviver.sh" - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73898 - keyname: "kokoro-github-access-token" - } - } -} - -env_vars { - key: "KOKORO_GITHUB_ACCESS_TOKEN" - value: "73898_kokoro-github-access-token" -} diff --git a/kokoro/kvm_tests.cfg b/kokoro/kvm_tests.cfg deleted file mode 100644 index 1feb60c8a..000000000 --- a/kokoro/kvm_tests.cfg +++ /dev/null @@ -1,10 +0,0 @@ -build_file: "repo/scripts/kvm_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc_logs_*.tar.gz" - } -} diff --git a/kokoro/kythe/generate_xrefs.cfg b/kokoro/kythe/generate_xrefs.cfg deleted file mode 100644 index ccf657983..000000000 --- a/kokoro/kythe/generate_xrefs.cfg +++ /dev/null @@ -1,29 +0,0 @@ -build_file: "gvisor/kokoro/kythe/generate_xrefs.sh" - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73898 - keyname: "kokoro-rbe-service-account" - } - } -} - -bazel_setting { - project_id: "gvisor-rbe" - local_execution: false - auth_credential: { - keystore_config_id: 73898 - keyname: "kokoro-rbe-service-account" - } - bes_backend_address: "buildeventservice.googleapis.com" - foundry_backend_address: "remotebuildexecution.googleapis.com" - upsalite_frontend_address: "https://source.cloud.google.com" -} - -action { - define_artifacts { - regex: "**/*.kzip" - fail_if_no_artifacts: true - } -} diff --git a/kokoro/kythe/generate_xrefs.sh b/kokoro/kythe/generate_xrefs.sh deleted file mode 100644 index 323b0f77b..000000000 --- a/kokoro/kythe/generate_xrefs.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -# Copyright 2019 The gVisor Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -ex - -if command -v use_bazel.sh >/dev/null; then - use_bazel.sh latest -fi -bazel version - -python3 -V - -readonly KYTHE_VERSION='v0.0.41' -readonly WORKDIR="$(mktemp -d)" -readonly KYTHE_DIR="${WORKDIR}/kythe-${KYTHE_VERSION}" -if [[ -n "$KOKORO_GIT_COMMIT" ]]; then - readonly KZIP_FILENAME="${KOKORO_ARTIFACTS_DIR}/${KOKORO_GIT_COMMIT}.kzip" -else - readonly KZIP_FILENAME="$(git rev-parse HEAD).kzip" -fi - -wget -q -O "${WORKDIR}/kythe.tar.gz" \ - "https://github.com/kythe/kythe/releases/download/${KYTHE_VERSION}/kythe-${KYTHE_VERSION}.tar.gz" -tar --no-same-owner -xzf "${WORKDIR}/kythe.tar.gz" --directory "$WORKDIR" - -if [[ -n "$KOKORO_ARTIFACTS_DIR" ]]; then - cd "${KOKORO_ARTIFACTS_DIR}/github/gvisor" -fi -bazel \ - --bazelrc="${KYTHE_DIR}/extractors.bazelrc" \ - build \ - --override_repository kythe_release="${KYTHE_DIR}" \ - --define=kythe_corpus=github.com/google/gvisor \ - --cxxopt=-std=c++17 \ - --config=remote \ - --auth_credentials="${KOKORO_BAZEL_AUTH_CREDENTIAL}" \ - //... - -"${KYTHE_DIR}/tools/kzip" merge \ - --output "$KZIP_FILENAME" \ - $(find -L bazel-out/*/extra_actions/ -name '*.kzip') diff --git a/kokoro/make_tests.cfg b/kokoro/make_tests.cfg deleted file mode 100644 index d973130ff..000000000 --- a/kokoro/make_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/make_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/kokoro/overlay_tests.cfg b/kokoro/overlay_tests.cfg deleted file mode 100644 index 6a2ddbd03..000000000 --- a/kokoro/overlay_tests.cfg +++ /dev/null @@ -1,10 +0,0 @@ -build_file: "repo/scripts/overlay_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc_logs_*.tar.gz" - } -} diff --git a/kokoro/packetdrill_tests.cfg b/kokoro/packetdrill_tests.cfg deleted file mode 100644 index 258d7deb4..000000000 --- a/kokoro/packetdrill_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/packetdrill_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/kokoro/packetimpact_tests.cfg b/kokoro/packetimpact_tests.cfg deleted file mode 100644 index db86b52d5..000000000 --- a/kokoro/packetimpact_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/packetimpact_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/kokoro/release.cfg b/kokoro/release.cfg deleted file mode 100644 index 5cec1790a..000000000 --- a/kokoro/release.cfg +++ /dev/null @@ -1,15 +0,0 @@ -build_file: "repo/scripts/release.sh" - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73898 - keyname: "kokoro-github-access-token" - } - } -} - -env_vars { - key: "KOKORO_GITHUB_ACCESS_TOKEN" - value: "73898_kokoro-github-access-token" -} diff --git a/kokoro/root_tests.cfg b/kokoro/root_tests.cfg deleted file mode 100644 index 28351695c..000000000 --- a/kokoro/root_tests.cfg +++ /dev/null @@ -1,10 +0,0 @@ -build_file: "repo/scripts/root_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc_logs_*.tar.gz" - } -} diff --git a/kokoro/runtime_tests.cfg b/kokoro/runtime_tests.cfg deleted file mode 100644 index 7d56d5aca..000000000 --- a/kokoro/runtime_tests.cfg +++ /dev/null @@ -1 +0,0 @@ -build_file: "repo/scripts/runtime_tests.sh" diff --git a/kokoro/runtime_tests/go1.12.cfg b/kokoro/runtime_tests/go1.12.cfg deleted file mode 100644 index 04bfe2868..000000000 --- a/kokoro/runtime_tests/go1.12.cfg +++ /dev/null @@ -1,16 +0,0 @@ -build_file: "github/github/scripts/runtime_tests.sh" - -env_vars { - key: "RUNTIME_TEST_NAME" - value: "go1.12" -} - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc" - regex: "**/runsc.*" - } -}
\ No newline at end of file diff --git a/kokoro/runtime_tests/java11.cfg b/kokoro/runtime_tests/java11.cfg deleted file mode 100644 index c82855cd2..000000000 --- a/kokoro/runtime_tests/java11.cfg +++ /dev/null @@ -1,16 +0,0 @@ -build_file: "github/github/scripts/runtime_tests.sh" - -env_vars { - key: "RUNTIME_TEST_NAME" - value: "java11" -} - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc" - regex: "**/runsc.*" - } -}
\ No newline at end of file diff --git a/kokoro/runtime_tests/nodejs12.4.0.cfg b/kokoro/runtime_tests/nodejs12.4.0.cfg deleted file mode 100644 index 5512db5df..000000000 --- a/kokoro/runtime_tests/nodejs12.4.0.cfg +++ /dev/null @@ -1,16 +0,0 @@ -build_file: "github/github/scripts/runtime_tests.sh" - -env_vars { - key: "RUNTIME_TEST_NAME" - value: "nodejs12.4.0" -} - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc" - regex: "**/runsc.*" - } -}
\ No newline at end of file diff --git a/kokoro/runtime_tests/php7.3.6.cfg b/kokoro/runtime_tests/php7.3.6.cfg deleted file mode 100644 index bc9ac92aa..000000000 --- a/kokoro/runtime_tests/php7.3.6.cfg +++ /dev/null @@ -1,16 +0,0 @@ -build_file: "github/github/scripts/runtime_tests.sh" - -env_vars { - key: "RUNTIME_TEST_NAME" - value: "php7.3.6" -} - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc" - regex: "**/runsc.*" - } -}
\ No newline at end of file diff --git a/kokoro/runtime_tests/python3.7.3.cfg b/kokoro/runtime_tests/python3.7.3.cfg deleted file mode 100644 index 12eb13860..000000000 --- a/kokoro/runtime_tests/python3.7.3.cfg +++ /dev/null @@ -1,16 +0,0 @@ -build_file: "github/github/scripts/runtime_tests.sh" - -env_vars { - key: "RUNTIME_TEST_NAME" - value: "python3.7.3" -} - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - regex: "**/runsc" - regex: "**/runsc.*" - } -}
\ No newline at end of file diff --git a/kokoro/runtime_tests/runtime_tests.sh b/kokoro/runtime_tests/runtime_tests.sh deleted file mode 100755 index 73a58f806..000000000 --- a/kokoro/runtime_tests/runtime_tests.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Copyright 2019 The gVisor Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Run in the root of the repo. -cd "$(dirname "$0")" -cd "$(git rev-parse --show-toplevel)" - -source scripts/common.sh - -if [ ! -v RUNTIME_TEST_NAME ]; then - echo 'Must set $RUNTIME_TEST_NAME' >&2 - exit 1 -fi - -install_runsc_for_test runtimes -test_runsc "//test/runtimes:${RUNTIME_TEST_NAME}_test" diff --git a/kokoro/simple_tests.cfg b/kokoro/simple_tests.cfg deleted file mode 100644 index 32e0a9431..000000000 --- a/kokoro/simple_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/simple_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/kokoro/swgso_tests.cfg b/kokoro/swgso_tests.cfg deleted file mode 100644 index 101a9c607..000000000 --- a/kokoro/swgso_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/swgso_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/kokoro/syscall_kvm_tests.cfg b/kokoro/syscall_kvm_tests.cfg deleted file mode 100644 index 3b99e9c13..000000000 --- a/kokoro/syscall_kvm_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/syscall_kvm_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/kokoro/syscall_tests.cfg b/kokoro/syscall_tests.cfg deleted file mode 100644 index ee6e4a3a4..000000000 --- a/kokoro/syscall_tests.cfg +++ /dev/null @@ -1,9 +0,0 @@ -build_file: "repo/scripts/syscall_tests.sh" - -action { - define_artifacts { - regex: "**/sponge_log.xml" - regex: "**/sponge_log.log" - regex: "**/outputs.zip" - } -} diff --git a/scripts/benchmarks.sh b/scripts/benchmarks.sh deleted file mode 100755 index 6b9065b07..000000000 --- a/scripts/benchmarks.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -# Copyright 2019 The gVisor Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#!/usr/bin/env bash - -if [ "$#" -lt "1" ]; then - echo "usage: $0 <--mock |--env=<filename>> ..." - echo "example: $0 --mock --runs=8" - exit 1 -fi - -source $(dirname $0)/common.sh - -readonly TIMESTAMP=`date "+%Y%m%d-%H%M%S"` -readonly OUTDIR="$(mktemp --tmpdir -d run-${TIMESTAMP}-XXX)" -readonly DEFAULT_RUNTIMES="--runtime=runc --runtime=runsc --runtime=runsc-kvm" -readonly ALL_RUNTIMES="--runtime=runc --runtime=runsc --runtime=runsc-kvm" - -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} 'fio.(read|write)' --metric=bandwidth --size=5g --ioengine=sync --blocksize=1m > "${OUTDIR}/fio.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} fio.rand --metric=bandwidth --size=5g --ioengine=sync --blocksize=4k --time=30 > "${OUTDIR}/tmp_fio.csv" -cat "${OUTDIR}/tmp_fio.csv" | grep "\(runc\|runsc\)" >> "${OUTDIR}/fio.csv" && rm "${OUTDIR}/tmp_fio.csv" - -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} 'fio.(read|write)' --metric=bandwidth --tmpfs=True --size=5g --ioengine=sync --blocksize=1m > "${OUTDIR}/fio-tmpfs.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} fio.rand --metric=bandwidth --tmpfs=True --size=5g --ioengine=sync --blocksize=4k --time=30 > "${OUTDIR}/tmp_fio.csv" -cat "${OUTDIR}/tmp_fio.csv" | grep "\(runc\|runsc\)" >> "${OUTDIR}/fio-tmpfs.csv" && rm "${OUTDIR}/tmp_fio.csv" - -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} startup --count=50 > "${OUTDIR}/startup.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} density > "${OUTDIR}/density.csv" - -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} sysbench.cpu --threads=1 --max_prime=50000 --options='--max-time=5' > "${OUTDIR}/sysbench-cpu.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} sysbench.memory --threads=1 --options='--memory-block-size=1M --memory-total-size=500G' > "${OUTDIR}/sysbench-memory.csv" -run //benchmarks:perf -- run "$@" ${ALL_RUNTIMES} syscall > "${OUTDIR}/syscall.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} 'network.(upload|download)' --runs=20 > "${OUTDIR}/iperf.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} ml.tensorflow > "${OUTDIR}/tensorflow.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} media.ffmpeg > "${OUTDIR}/ffmpeg.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} http.httpd --path=latin100k.txt --connections=1 --connections=5 --connections=10 --connections=25 > "${OUTDIR}/httpd100k.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} http.httpd --path=latin10240k.txt --connections=1 --connections=5 --connections=10 --connections=25 > "${OUTDIR}/httpd10240k.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} redis > "${OUTDIR}/redis.csv" -run //benchmarks:perf -- run "$@" ${DEFAULT_RUNTIMES} 'http.(ruby|node)' > "${OUTDIR}/applications.csv" - -echo "${OUTPUT}" && exit 0 |