Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pytestが実行できる体制を整える #28

Closed
1 of 2 tasks
200km opened this issue Apr 15, 2023 · 17 comments · Fixed by #150
Closed
1 of 2 tasks

Pytestが実行できる体制を整える #28

200km opened this issue Apr 15, 2023 · 17 comments · Fixed by #150
Assignees
Labels

Comments

@200km
Copy link
Member

200km commented Apr 15, 2023

概要

Pytestが実行できる体制を整える

詳細

Pytestが実行できる体制を整える

close条件

  • Pytestを実装していく
  • CIに組み込む

備考

NA

注意

NA

@200km
Copy link
Member Author

200km commented Jul 20, 2023

pytestに必要なC2A側の機能

#76 (comment)

@200km
Copy link
Member Author

200km commented Jul 27, 2023

@chutaro c2a-aobcでもGitHub Actionsでpytestを回したいのですが、参考になるものがあれば教えてもらえると嬉しいです。

@chutaro
Copy link
Contributor

chutaro commented Jul 27, 2023

一方で、AEさん側で、wingsを使わずにc2aを実行し、pytestも実行するツール群を作成している気がしており、c2a-aobcが今後もAEさんと連携を密にする場合、AEの枠組みに乗った方が便利かつやりやすいのではないかという気もします。(いちおうメンションしておきます @sksat

@200km
Copy link
Member Author

200km commented Jul 27, 2023

ありがとうございます!

@200km
Copy link
Member Author

200km commented Jul 27, 2023

@chutaro これ、現状は手元で回していて、GitHubActions上ではまだ回していない感じですかね?参考になるyamlファイル見てみたいです。

@chutaro
Copy link
Contributor

chutaro commented Jul 27, 2023

wingsを動かすのが大変そうなので、self hosted で CI サーバー上でやるしかないかなと思っていて、ただまだ手を付けていない状態です。github 移行後は pytest 無しで進めています。

@200km
Copy link
Member Author

200km commented Jul 27, 2023

wingsを動かすのが大変そうなので

そういう感じなんですね。。。わかりました。
AEさん側で、wingsを使わずにc2aを実行し、pytestも実行するツール群を作成している気がしておりあたりが導入されたらGitHub Actionsでも動かせる感じですかね?

@chutaro
Copy link
Contributor

chutaro commented Jul 31, 2023

  • wings を動かす場合は self hosted で研究室サーバー上で動かすのが楽だと思っています(comポートの通信とかが大変そう)
  • AEさんのツールが github actions で動かせるかは AE さんに聞きたいですね。まだAE側でも整備段階だと思うので、アップデートあったら共有します。

@200km
Copy link
Member Author

200km commented Aug 1, 2023

使おうとしてつまづいたところ

c2a-enum-loader

  • 次の部分でenumが読めず、エラーが出ている
    OEM7600_TLM_ID_RANGE_ASCII = OEM7600_TLM_ID_RANGE + 0x1000,
    • 右辺でOEM7600_TLM_ID_RANGEを使っているのが悪く、直接0x0000102Bと書けばエラーは出ない
  • 同様のエラーとして、ValueError: invalid literal for int() with base 10: XXH_rotl32が出るが、これはどの部分か不明。外部ライブラリであるxxHashに関連しているのはわかるが、XXH_rotl32はenumで使われていないので謎

@200km
Copy link
Member Author

200km commented Aug 2, 2023

ValueError: invalid literal for int() with base 10: XXH_rotl32

については、xxHash.c内で一行でenum定義されていたものを複数行に変えると解消された。XXH_rotl32は関係なかったのでエラー表示は謎ではある。

typedef enum { XXH_aligned, XXH_unaligned } XXH_alignment;

C2Aのcoding rule的には、改行する必要があるのだと思うが、xxHashは外部ライブラリから引っ張ってきたものなので、coding ruleを適応させたくはない。enum loaderからファイル指定で除外できると嬉しい。

@200km 200km mentioned this issue Aug 2, 2023
@200km
Copy link
Member Author

200km commented Aug 2, 2023

#150 のとおり、上のエラーを除去した状況ではpytestが実行できるようになった。ただし、次の部分でつまづいた。

  • Cmd_APP_AOCS_MANAGER_SET_REFERENCE_TIMEコマンドをpytestしようとしたら、引数の方部分でエラーが出た。

このコマンドはdouble型を引数に持っているので、その部分でエラーが出たのではないかと思う。

@200km
Copy link
Member Author

200km commented Aug 2, 2023

CIに組み込むのは時間がかかりそうなので、別issueに切り出す。

@200km
Copy link
Member Author

200km commented Aug 2, 2023

Cmd_APP_AOCS_MANAGER_SET_REFERENCE_TIMEコマンドをpytestしようとしたら、引数の方部分でエラーが出た。

これはdouble型関係なく、引数が一つであることが問題っぽい。次のように,を引数の最後に入れるとエラー回避できたが、これが想定仕様なのかは微妙な気もする。

@200km
Copy link
Member Author

200km commented Aug 2, 2023

c2a-coreの方を見ても、引数ひとつの時は同じような書き方をしているようなのでそういう仕様ということなのかもしれない。ただ分かりづらく、どこにも記述がないので初めての人はハマってしまいやすそうな気がする。

https://github.com/ut-issl/c2a-core/blob/a7b384cc91be5ebaeb8d6ea52503037033c6b0aa/Examples/minimum_user/src/src_user/Test/test/src_core/System/EventManager/test_event_handler.py#L119

@chutaro 引数一つの時のこの現象についてコメントいただけると嬉しいです。

@chutaro
Copy link
Contributor

chutaro commented Aug 3, 2023

引数一つの時のこの現象

これはシンプルに python で tuple を使うときの文法の話だと思います
参考:https://note.nkmk.me/python-tuple-single-empty/

@chutaro
Copy link
Contributor

chutaro commented Aug 3, 2023

enum の足し算表記と、一行表記は enum loader の方では想定していなそうです。短期的には c2a のソースコードを修正することで対応していただけるとありがたいです!

@200km
Copy link
Member Author

200km commented Aug 3, 2023

python で tuple を使うときの文法の話

ありがとうございます。pythonでは常識的な話という感じなんですかね。
AOCS向けにマニュアル作るときには注釈つけようと思います。

これとは別に、pytestで使う関数全体的にコメントが欲しいなとは思いました。今はコード全部読むか、他のコードを真似て書くしかない感じで少し面倒にかんじました。

短期的には c2a のソースコードを修正する

足し算表記は対応しました。#153
一行表記の方は外部からとってきたもので、ソースコードを修正するのはしたくなく除外ファイルとして扱いたいということで、issueを出させてもらっています。ut-issl/c2a-enum-loader#23

@200km 200km closed this as completed in #150 Aug 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants