diff --git a/tests/file-object.os b/tests/file-object.os index 18d9d48be..b46a613ea 100644 --- a/tests/file-object.os +++ b/tests/file-object.os @@ -279,35 +279,44 @@ Возврат Дата(Формат(Дата, "ДФ=ггггММддЧЧммсс")); КонецФункции +// Время файла должно попасть в интервал записи. Сравнивать с моментом до записи с допуском нельзя: +// на медленной машине CI запись файла занимает секунды. Запас в секунду - на округление до секунд +// и на шаг времени в 2 секунды у FAT32 +Процедура ПроверитьДатуВИнтервале(Знач Дата, Знач Начало, Знач Конец, Знач ЧтоПроверяем) + Дата = ДатаСТочностьюДоСекунды(Дата); + юТест.ПроверитьБольшеИлиРавно(Дата, ДатаСТочностьюДоСекунды(Начало) - 1, ЧтоПроверяем + " раньше записи"); + юТест.ПроверитьМеньшеИлиРавно(Дата, ДатаСТочностьюДоСекунды(Конец) + 1, ЧтоПроверяем + " позже записи"); +КонецПроцедуры + Процедура ТестДолжен_ПроверитьПолучениеДатСозданияИИзменения() Экспорт - ТекущаяДата = ТекущаяДата(); ВремФайл = ПолучитьИмяВременногоФайла("os"); Если Не ФайловаяСистемаПоддерживаетВремяСоздания(ВремФайл) Тогда Возврат; КонецЕсли; + ДоЗаписи = ТекущаяДата(); ЗаписьТекста = Новый ЗаписьТекста(ВремФайл); ЗаписьТекста.ЗаписатьСтроку("---"); ЗаписьТекста.Закрыть(); + ПослеЗаписи = ТекущаяДата(); Файл = Новый Файл(ВремФайл); ВремяСоздания = Файл.ПолучитьВремяСоздания(); - юТест.ПроверитьРавенствоДатСТочностью2Секунды( - ДатаСТочностьюДоСекунды(ТекущаяДата), ДатаСТочностьюДоСекунды(ВремяСоздания)); + ПроверитьДатуВИнтервале(ВремяСоздания, ДоЗаписи, ПослеЗаписи, "Время создания"); Приостановить(3000); - ТекущаяДата = ТекущаяДата(); + ДоЗаписи = ТекущаяДата(); ЗаписьТекста.Открыть(ВремФайл); ЗаписьТекста.ЗаписатьСтроку("---"); ЗаписьТекста.Закрыть(); + ПослеЗаписи = ТекущаяДата(); Файл = Новый Файл(ВремФайл); ВремяСоздания = Файл.ПолучитьВремяСоздания(); ВремяИзменения = Файл.ПолучитьВремяИзменения(); - юТест.ПроверитьРавенствоДатСТочностью2Секунды( - ДатаСТочностьюДоСекунды(ТекущаяДата), ДатаСТочностьюДоСекунды(ВремяИзменения)); + ПроверитьДатуВИнтервале(ВремяИзменения, ДоЗаписи, ПослеЗаписи, "Время изменения"); юТест.ПроверитьМеньше(ВремяСоздания, ВремяИзменения); УдалитьФайлы(ВремФайл);