1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-arkcompiler_ets_frontend

 / Детали:

Исследуйте тест CTS в отношении разделов спецификации 5, 13 и 15.

Предстоит сделать
Владелец
Создано  
05.03.2025

Этот issue предназначен для отслеживания процесса анализа текущих тестов CTS. Задачи:

  • найти устаревшие тесты и те, которые не соответствуют современным спецификациям.
  • некоторые тесты могут требовать сложной функциональности.
  • некоторые тесты могут потребовать удаления из списков игнора CTS.

Раздел 5 тестовых случаев CTS:

Покрытие CTS (2024-12-09): 80.3% — цель: более 90%

Тесты с проблемами, которые нужно решить:

  • список игнора довольно информативен относительно раздела generics и предоставляет внутренние номера задач и списки связанных тестовых случаев (не может быть проверено со стороны нашего проекта). Кроме этих замечаний:
  • ошибка, связанная с <T extends Object[]>:
    • 05.generics/02.generic_instantiations/01.type_arguments/type_arguments_of_parameterized_declarations/method_args2_6.sts
      • :33 T extends Object[] вызывает ошибку типа Constraint "extends" must be an object [method_args2_6.sts:33:34]
    • 05.generics/02.generic_instantiations/01.type_arguments/type_arguments_of_parameterized_declarations/class_args_9.sts
    • #IBB94B решил эти проблемы (уже объединён)Сомнительные особенности в тестах
  • Эти тесты используют входящие-выходящие ограничения на месте использования, на аннотациях: ограничение in/out применяется на месте использования, в то время как имеются инвариантные типовые аргументы на месте объявления. Эта особенность не упоминается в спецификациях lg. Если эта особенность не должна поддерживаться, эти тестовые случаи CTS можно переместить в недействительные тестовые случаи:
  • 8 тестов, индексированных от 0 до 7:
    • 05. generics/02. generic_instantiations/01. type_arguments/type_arguments_of_parameterized_declarations/class_variance_. sts
    • #IBB943 addressed this (MERGED)
      • В этом файле есть ещё одна проблема, если мы вынесем in из аннотации: let a: A<X> = new A<X>(new Z()); let z: Y = a.methOut(), используется более общий тип (X), чем указанный (Y), в позиции out, что запрещено. - Эти тесты проваливаются потому что они используют этот синтаксис для создания экземпляров из спецификаций lg: new <typeArgument> Type():
    • 25 тестов, индексированных от 0 до 24: 05. generics/02. generic_instantiations/01. type_arguments/type_arguments_of_parameterized_declarations/constr_args1_. sts
    • #IBB93A решил эту проблему (MERGED)
    • 17 отрицательных тестов, индексированных от 0 до 16, ложно проваливаются из-за этой проблемы: 05. generics/02. generic_instantiations/01. type_arguments/type_arguments_of_parameterized_declarations/const_args1_neg_. sts
    • Примечание: в спецификациях грамматика создания экземпляра ('new' typeArguments? typeReference arguments?) запрещает создание типа new A<T>(params).В других тестах есть несколько примеров использования этого последнего синтаксиса. Рекомендовано уточнение спецификации. Недействительные/неправильные тестовые случаи
  • связанный вопрос к тестам ниже: https://gitee.com/openharmony/arkcompiler_runtime_core/issues/IBGTUE
  • 05. generics/01. type_parameters/generic_classes/generic_class_self_dependency_.sts (индексы 3-14)
    • эти тесты находятся в списке игнорируемых, но содержат синтаксис типа T<U<V>>>, который раздел 5.1 не допускает. — должны быть обновлены или сделаны отрицательными.### Раздел 13:
      покрытие CTS (2024-12-09): 89.1% — цель: 90+%

тесты, имеющие проблемы, требующие решения:

  • CTS/gen/13.compilation_units_packages_and_modules/11.top_level_statements/block_declaration_4.sts
    • назначено Istvan Romai #IBAG78
  • 13.compilation_units_packages_and_modules/08.top_level_declarations/01.exported_declarations/type_exported_declarations/export_type_class_same_name_2.sts
    • назначено Simon Soma #IBAF9F
  • 13.compilation_units_packages_and_modules/04.import_directives/03.several_bindings_for_one_import_path/explicitly_and_implicitly_import_5.sts
    • назначено Otto Eotvos #IBAEPQНедействительные/неправильные тестовые случаи
  • тесты ниже рассматриваются в https://gitee.com/openharmony/arkcompiler_runtime_core/issues/IBBOAA
  • 13. compilation_units_packages_and_modules/08. top-level_declarations/top_level_declarations_11.sts
    • устарели
    • причина: статические расширяющие функции были удалены
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_declaration_8.sts
    • устарел
    • причина: переопределение константного значения
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_declaration_9.sts
    • устарел
    • причина: переопределение константного значения; синтаксическая ошибка: в конструкции while должно быть одно выражение (которое может быть блочным выражением)
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_declaration_10.sts
    • устарел
    • причина: переопределение конstantного значения
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_declaration_11.sts
    • устарел
    • причина: переопределение константного значения
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_declaration_14.sts
    • устарел
    • причина: переопределение константного значения
  • 13. compilation_units_packages_and_modules/04. import_directives/07. import_path/dir/import_path_dir_2.sts
    • устарел
    • причина: 1) import_path_dir_2:31 — импорт требует ключевого слова as, 2) отсутствие объявления пакета в модуле module_a.sts. Устранение ошибок 1) и 2) позволяет тесту пройти успешно (#easy-correct)
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_declaration_2.sts
    • устарел - описание противоречит текущим спецификациям: "Все операторы уровня модуля должны быть заключены в фигурные скобки для создания блока."
    • тест проходит, если assert() заменить на assert(true)
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_execution. sts
    • устарел
    • описание устарело
    • решение: тест проходит, если в строках :23 :31 обновить операторы assert()
  • 13. compilation_units_packages_and_modules/11. top-level_statements/multiple_block_execution. sts
    • устарел
    • описание устарело
    • :23 :27 оператор assert() нуждается в обновлении
    • :35 :39 вызов false() приводит к ошибке типа: булево значение не имеет сигнатуры вызова
  • 13. compilation_units_packages_and_modules/11. top-level_statements/block_declaration_7
    • устарел
    • описание устарело
    • :31 оператор assert() нуждается в обновлении
    • :35 синтаксическая ошибка: внутри блочной конструкции могут находиться только операторы. Объявление функции не является оператором.
  • 13. компиляционные_единицы_пакеты_и_модули/04. инструкции_ввода/03. несколько_биндингов_для_одного_пути_ввода/явное_и_неявное_введение_3. sts
    • устарело
    • причина: почему это отрицательный тест?
    • комментарии:
        1. описание устарело: син доступен из std/math по умолчанию
        1. std — особый случай, возможно, не лучшая идея проверять явное и неявное введение на них - 3) вероятно, нужна ясность в спецификациях: импорт std имен со стороны пользователя приводит к тому, что син можно получить как син и как псевдоним, который он явно импортировал. Очень похоже на этот случай: import {sin as Sine, sin as SIN}, что должно привести к ошибке CTE. Должны ли мы допустить это?
  • 13. компиляционные_единицы_пакеты_и_модули/04. инструкции_ввода/введение_2. sts
    • устарел
    • причина: :25 std не имеет массива подкаталогов, что приводит к неподдерживаемому пути
    • решение: путь на :25 следует обновить, чтобы протестировать первоначальное намерение
  • 13. компиляционные_единицы_пакеты_и_модули/04. инструкции_ввода/введение_0. sts
    • устарел
    • причина: :25 std не имеет массива подкаталогов, что приводит к неподдерживаемому пути
    • решение: путь на :25 следует обновить, чтобы протестировать первоначальное намерение
  • 13. компиляционные_единицы_пакеты_и_модули/02. отдельный_инициализатор_модуля/инструкции_ввода. sts
    • устарел тест
    • причины:
        1. :72 нет определённого v, v -> z, - легко исправляемо
        1. :79 нет определённого err, err -> new Error(), - легко исправляемо
        1. :68 утверждение ошибки: n = 11. 1, а не 15. 1
  • 13. компиляционные_единицы_пакеты_и_модули/05. использование_стандартной_библиотеки/основной_по_умолчанию_ввод_0. sts
    • думаю, что он проходит и должен
  • 13. компиляционные_единицы_пакеты_и_модули/05.использование_стандартной_библиотеки/основной_по_умолчанию_ввод_25. sts
    • Думаю, что он проходит и должен
  • 13. компиляционные_единицы_пакеты_и_модули/10. инструкции_экспорта/04. инструкции_переэкспорта/переэкспорт_всех_через_старые_названия. sts
    • Инструкция переэкспорта, старые названия также должны быть доступны -> Почему? Нужна подтверждение со стороны стандарта
    • В текущих спецификациях нет упоминания о функционале "Инструкция переэкспорта, старые названия также должны быть доступны" — он, скорее всего, уже удален
    • Решение: следует превратить его в отрицательный тест?### Раздел 15:
      См. отдельный вопрос: #IBGUEL

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
enhancement
label.
GitLife Service Account добавлено
 
waiting_for_assign
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/openharmony-arkcompiler_ets_frontend.git
git@api.gitlife.ru:oschina-mirror/openharmony-arkcompiler_ets_frontend.git
oschina-mirror
openharmony-arkcompiler_ets_frontend
openharmony-arkcompiler_ets_frontend