chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you 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.
|
||||
"""Tests for functions in tvm/python/tvm/contrib/util.py."""
|
||||
|
||||
import datetime
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from tvm.support import utils
|
||||
|
||||
|
||||
def validate_debug_dir_path(temp_dir, expected_basename):
|
||||
"""Validate the dir path of debugging"""
|
||||
dirname, basename = os.path.split(temp_dir.temp_dir)
|
||||
assert basename == expected_basename, f"unexpected basename: {basename}"
|
||||
|
||||
parent_dir = os.path.basename(dirname)
|
||||
create_time = datetime.datetime.strptime(parent_dir.split("___", 1)[0], "%Y-%m-%dT%H-%M-%S")
|
||||
assert abs(datetime.datetime.now() - create_time) < datetime.timedelta(seconds=60)
|
||||
|
||||
|
||||
def test_tempdir():
|
||||
"""Tests for temporary dir"""
|
||||
assert utils.TempDirectory._KEEP_FOR_DEBUG is False, "don't submit with KEEP_FOR_DEBUG == True"
|
||||
|
||||
temp_dir = utils.tempdir()
|
||||
assert os.path.exists(temp_dir.temp_dir)
|
||||
|
||||
old_debug_mode = utils.TempDirectory._KEEP_FOR_DEBUG
|
||||
old_tempdirs = utils.TempDirectory.TEMPDIRS
|
||||
try:
|
||||
for temp_dir_number in range(0, 3):
|
||||
with utils.TempDirectory.set_keep_for_debug():
|
||||
debug_temp_dir = utils.tempdir()
|
||||
try:
|
||||
validate_debug_dir_path(debug_temp_dir, "0000" + str(temp_dir_number))
|
||||
finally:
|
||||
shutil.rmtree(debug_temp_dir.temp_dir)
|
||||
|
||||
with utils.TempDirectory.set_keep_for_debug():
|
||||
# Create 2 temp_dir within the same session.
|
||||
debug_temp_dir = utils.tempdir()
|
||||
try:
|
||||
validate_debug_dir_path(debug_temp_dir, "00003")
|
||||
finally:
|
||||
shutil.rmtree(debug_temp_dir.temp_dir)
|
||||
|
||||
debug_temp_dir = utils.tempdir()
|
||||
try:
|
||||
validate_debug_dir_path(debug_temp_dir, "00004")
|
||||
finally:
|
||||
shutil.rmtree(debug_temp_dir.temp_dir)
|
||||
|
||||
with utils.TempDirectory.set_keep_for_debug(False):
|
||||
debug_temp_dir = utils.tempdir() # This one should get deleted.
|
||||
|
||||
# Simulate atexit hook
|
||||
utils.TempDirectory.remove_tempdirs()
|
||||
|
||||
# Calling twice should be a no-op.
|
||||
utils.TempDirectory.remove_tempdirs()
|
||||
|
||||
# Creating a new TempDirectory should fail now
|
||||
try:
|
||||
utils.tempdir()
|
||||
assert False, "creation should fail"
|
||||
except utils.DirectoryCreatedPastAtExit:
|
||||
pass
|
||||
|
||||
finally:
|
||||
utils.TempDirectory.DEBUG_MODE = old_debug_mode
|
||||
utils.TempDirectory.TEMPDIRS = old_tempdirs
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_tempdir()
|
||||
Reference in New Issue
Block a user